Initial rework of insteon debugging
Move debuglevel sub to Insteon::debuglevel, convert other subs to stubs that call this main sub. Insert more stubs, cleanup and further testing.
Merge remote-tracking branch 'remotes/hollie/master' into insteon_device_log_verbosity

Conflicts:
	lib/Insteon/BaseInsteon.pm
	lib/Insteon/Controller.pm
	lib/Insteon/Lighting.pm
	lib/Insteon/Security.pm
Insteon: Add Sync_All_Links Routine for Multigroup items; Add MultigroupDevice Package

Added a package called MutigroupDevice in BaseInsteon.pm.  The purpose of this package is to contain routines specific to all multigroup devices.

Added Sync_All_links routines to MultigroupDevice.  The routine will sync all links between any group on the device.  Useful for KeyPadLincs and RemoteLincs and such.

Fixes #85
Insteon: Add Sync All Links Voice Command to Multigroup Devices
Insteon: Multigroup Sync All Links to Scan Root Object

Not sure why I omitted this before.
Merge remote-tracking branch 'remotes/hollie/master' into insteon_device_log_verbosity
Remove Switch/Case Statement, Incompatible with Perl 5.8

For some reason it appears that Swtich.pm version 2.10 which was distributed in perl 5.8.x has some egregious bugs.

In order to enable backwards compatibility, these have been converted to if/elsif/else statements
Merge branch 'master' into backward_compatible
Allow a Build Number of 0

Check if build number is defined, not if true, as in extremely rare case build number may be 0.
Merge pull request #306 from krkeegan/build_number

Allow a Build Number of 0
Adds INSTEON_TRIGGERLINC Device to 'Edit Items' Page in Web Interface
Merge pull request #308 from JaredF/add_triggerlinc_to_items_pl

Adds INSTEON_TRIGGERLINC Device to 'Edit Items' Page in Web Interface
Merge pull request #305 from krkeegan/backward_compatible

Remove Switch/Case Statement, Incompatible with Perl 5.8
Insteon: Remove extraneous commented code from Insteon.pm

If we don't remove the code now, we will likely never do it.
Insteon: Convert DebugLevel Entries to Parent Device

ALDB objects have no real name, and as such, a user would not be able to add them to a debug line in the ini.  Moreover, if a user puts a device in the debug line, they likely expect to get all relevant messages, including ALDB messages for this device.

Removed debuglevel routine as it is unnecessary.
Insteon: Removed Debuglevel routine from Insteon.pm

Neither the Insteon Manager nor the non-object oriented Insteon.pm have user friendly names that can be put into the debug parameter.  As a result adding a debuglevel routine which really just resulted in returning the global insteon debug level only complicated things.
Insteon: Move Debuglevel into BaseObject, Re-Assign Debuglevel in BaseInterface

Trying to attach the debug message to the most logical object.  Whenever possible, trying to avoid having the PLM be the "catch-all" object.
Insteon: Edit Debuglevel Calls in Message.pm

Remove debuglevel routine, messages have no human readable names.  All calls should be to the relevant object.

Calls to X10 items are tricky, x10 items are defined outside of BaseObject and so do not inherit the necessary debuglevel routine (unless it is expanded to Generic_Item at some future date)
Insteon: Rearrange Debuglevel Association in Insteon_PLM

Attempt to remove as many messages from the PLM as possible.  Avoid using it like a "catch-all".

This is particularly difficult for incoming messages.