Merge branch 'insteon_local_update_fix'
Merge in upstream

Merge branch 'master' of https://github.com/hollie/misterhouse
Fix for Issue #26

Previously, insteon cleanup messages received by MH, would cause MH to clear the active message
withoug confirming if the cleanup message corresponded to the active message.

If multiple PLM scenes were sent sequentially, a cleanup message from one scene may have caused
MH to clear out the following scenes command.

This patch only clears the active message if the cleanup message matches the active message.
Add support for get_engine_version() scan at startup.
Store engine_version in Insteon::BaseObject
Initial code added to Voice::Text

This is an initial attempt to get TTS working on OS X with the default TTS tools included in the OS.
Up to now TTS on OSX required separate code to be enabled under code/common. The idea is to integrate
TTS on OS X into MH just like the unix/windows interface is built.
Merge branch 'master' into i2_aldb_support
Merge pull request #34 from mstovenour/insteon_decoder

PLM Terminal Windows Support
Added engine version property to the Insteon base object:  Stored and retrieved with Insteon::BaseObject::engine_version().  Added engine version request to the startup scan.  Cleaned up _is_info_request() so that it returns true for both matching commands.  Added link_cleanup_report=>0x06 to the known insteon message types.
Merge remote-tracking branch 'origin/master' into i2_aldb_support
ALDB_i2 support for scan_link_table and sync_links
--lib/Insteon/AllLinkDatabase.pm
Corrected 'use' statements to eliminate "subroutine xxx redefined" warnings with perl -w.
Added ALDB_i2 functions to support scan_link_table() and _write_link() (for sync links).  Duplicated code from ALDB_i1 for now.  Will refactor code later to combine logic. (will need i1 devices for test)
--lib/Insteon/BaseInsteon.pm
Corrected 'use' statements to eliminate "subroutine xxx redefined" warnings with perl -w.
Added support for reading, storing, and saving engine version
Removed dupilcate state save of level
Added support for read_write_aldb command
--lib/Insteon/Lighting.pm
Modified Insteon::LampLinc to inherit Insteon::DeviceController to support LampLinc with local control buttons
--lib/Insteon/Message.pm
Corrected 'use' statements to eliminate "subroutine xxx redefined" warnings with perl -w.
Modified extended message code to properly parse the extra data
Added support for checksums on extended data with i2CS devices
--lib/Insteon_PLM.pm
Added "use Insteon;" as it was necessary after correcting use statements in other modules.
Added extra level 3 debug for the logic that saves message fragments
Added logic to abort parsing if PLM message is not the right length to prevent crashes. Added logic to print a newline if user presses enter with no data.
Merge branch 'fix_issue_35' into i2_aldb_support
Merge pull request #36 from mstovenour/fix_issue_35

Message parsing crash fix
Fix 2 small problems of using undefined hash entries.
Merge pull request #37 from marcmerlin/master

Small fix mentioned on the mailing list a while ago to fix the use of undefined hash entries
Merge pull request #29 from krkeegan/253afad710f4c8bac5f08a842e14dc4adf74f1fb

Fix for Issue #26. Mered after krkeegan has been running this fix for 3 weeks without issues.
Debuged "sync links" and "sync all links" for i2CS
--lib/Insteon.pm
Added some POD documentation for the functions I studied
Added missing link to interface and unlink from interface tie_event for controllers
Added PLM voice command "initiate linking as controller" to support half-automated i2 device linking
Renamed PLM voice command "show link table to log" to "log links" to match the device voice command.  Compatibility WARNING:  If your code uses the old PLM voice command you will need to change your code to the new command.
Updated get_object to return a match on the base device if there are no matching groups
--lib/Insteon/AllLinkDatabase.pm
Corrected rather nasty "adlb" typos to "aldb" as reported by krkeegan
Added additional state logic to fix "sync links"
Fixed flag logic
Added health=good and inuse=1 properties for PLM aldb
--lib/Insteon/BaseInsteon.pm
Added additional state logic to fix "sync links"
--lib/Insteon/Message.pm
Added logic to ensure message always contains a flag byte even if hop_count==0
--lib/Insteon/MessageDecoder.pm
Renamed user_user_reset to plm_user_reset
--lib/Insteon_PLM.pm
Added support for processing plm_user_reset.  There is no code action associated with the message but it doesn't hang the interface either
For initiate_linking_as_controller changed default group to 01 rather than FF to match how the PLM creates the same links when linking manually
Add check logic in read_write_aldb state machine to ensure the command ack is received from the device before waiting on the read response
Update debug to note I2CS devices as potential sources of error

An I2CS device will respond with a NACK if you try and control it with the PLM
before it is linked as a responder.  Add a note to the debug log regarding this.
Fix typos in AllLinkDatabase

ALDB was accidently typed ADLB in a few places.  These are likely causing some unnoticed errors, particularly with sorting.