Substantial refactoring of the InsteonPLM binding

Several architectural changes were made based on lessons learned with the first version:

- binding now largely ignores category/subcategory entries in the modem link database
- no more device querying (too fragile, rarely successful, not really needed)
- binding can now handle updates to the item binding configuration while running
- new approach for deleting modem database entries allows for selective deleting of devices
- split DeviceFeature class into new classes MessageHandler, CommandHandler, MessageDispatcher, PollHandler
- did away with device descriptors, categories, subcategories as they are no longer needed
- replaced categories.xml by much simpler device_types.xml file
- added configuration option to add new device types via local device_types.xml file
- more code documentation