Insteon_Data3: Change Default Data3 value for I2CS devices

This may fix issue hollie/misterhouse#176
Insteon: Check if Code Can do Engine_Version Before Calling It

Fix bad typos in coding.  Not sure why I was attempting to dereferrence an object.
Don't call engine_version on PLM object
Insteon: Fix Bug in Call to Is_Deaf in Sync_Links
Merge pull request #289 from krkeegan/insteon_is_deaf

Insteon: Fix Bug in Call to Is_Deaf in Sync_Links
Merge branch 'master' into insteon_data3_controller
Merge branch 'insteon_data3' into insteon_data3_controller
Insteon: Add Function to Calculate ALDB Key

It is a simple function, but this calculation is repeated all over the place.  Unifying the calculation ensures that it is always consistent.  Plus, if changes need to be made in the future, they can be more easily implemented.
Insteon: Move _aldb to BaseObject, Define get_root for InterfaceController

This way we don't need to treat BaseObjects and InterfaceControlle objects differently.
Insteon: Only Change Data3 on Responders, Don't Do Processing in _write_link

The distinction in the data3 value between i2CS and everything else only applies to repsonder links.

Remove any processing from the low level _write_link routine.  All processing of the data should occur higher up than this.
Insteon: Remove Old Style Data3 Code from Delete_Orphans

Ready to start testing the outputted results.
Insteon: Dont Use Data3 in PLM Linkkey

Data3 on controller links on the PLM should be set to the group.  The old code set this to 0 or the responding device's button.  It doesn't appear that this error had any major effect.  So rather than replace all of these links, simply ignore the data3 value in the linkkey so that old links will be accepted by sync and delete links.

The Data3 value of the responder links on the PLM should always be 00.

Therefore no concern that a different data3 value makes a link on the PLM unique.
Insteon: Fix Comments in Link to Interface to be more clear
Insteon: ALDB Cache is in the Member Root
Insteon: Fix Logic In Sync Links
Insteon: Revise Delete_Orphans Rewrite
Insteon: Revise Default Data3 Distinction for i2CS/not-i2CS
Insteon: Add Comments re Oddity in PLM Control Codes

Control Codes for Manage All Link Database entries do not appear to match reality.

Did not alter the code to address this, as it doesn't appear that d1-3 matter on the PLM and thus there is no reason to update a link.
Insteon: Sync Half Links for Deaf or Unhealthy Devices

Will add the responder/controller link to the other device even if the other device is deaf or unhealthy.