Macros, not only for plcd, but in the compiler too! Also Insteon debugging help

Amongst all the new capabilities that have been streaming into plcd over the last few weeks, I have noticed that I have written similar code in several places. The code in question is that which gets the CommandFactory singleton instance and gets a command from it, reporting an error when CommandFactory doesn't recognize the command requested. Rather than litter the code with more of these, I decided that I would write a macro in the code called "GetCommandFromFactory". It takes the same parameter as the original GetCommand call and performs the singleton lookup and tacks on the calling function name, file name and line number. If the factory cannot satisfy the request, it posts the error message, and adds where the request came from. All in all, this is a much better solution.

I also reinstated the function that reads the PLM database, instead of using it to determine which group corresponds to which device it simple dumps it into the log file for further examination. This allows the user to sanity check the links and determine what is going on. I have discovered that my PLM has got some incorrectly configured links that I need to repair. Basically the fanlinc seems to be linked at least twice, and possibly 3 times.