Insteon: Fix Bug in PLM Sanity Check Which Caused Crash on X10 Messages

Fix issue identified by Marc

http://misterhouse.10964.n7.nabble.com/Insteon-IOLinc-Support-Draft-Done-tp17944p17950.html
Insteon: Clear No_Hop_Flag Even If No Debug; Don't Call Setby if Undef

Fixes errors pointed out by CDragon and MStovenour
Insteon: Fix Error in PLM Message Integrity Check Logic

Fix bugs in which PLM commands with a letter were rejected as being too long. Notably this prevented the scanning of the PLM link table.

Also fix bug which prevented MH from sending extended length messages to the PLM.

Fixes Issues
hollie/misterhouse#170
mstovenour/misterhouse#14
Merge pull request #171 from krkeegan/fix_issue_83

Insteon: Fix Error in PLM Message Integrity Check Logic
Insteon: Catch and Log AllLink_Cleanup_Reports

Fix bug in which MH set the state of a device to 'link_cleanup_report.'
Log the results of the cleanup reports.

Fixes Issue hollie/misterhouse#168
Insteon: Catch Error if Device ID in All_Link_Failure Does Not Exist

Checks to make sure an object exists, if no object exists for that device_id then it sends a message to the log reminding the user to delete_orphan links.

Fixes mstovenour/misterhouse#17
Insteon: Update PLM Scene State on Change

When a PLM Scene is successfully sent, MH will now update the state of the scene.

Fixes issue hollie/misterhouse#177
Insteon: Catch Cleanup Messages Sent in the Same Pass as AllLink Messages

Issue discovered by @peloy.  MH should be ignoring the cleanup message received after an AllLink message.  However, both messages were previously processed if they were received in the same pass.  This resolves that discrepancy by checking what the state of the object will be at the start of the next pass.

Partially fixes hollie/misterhouse#185
Return a web page instead of HTML code when visiting Phone
Calls/VoiceMail Msgs -> Phone List (starting at the top IA5 page).
Insteon: Move Failure_Reason into BaseObject from Message

The active_message must be cleared before calling the failure_callback, otherwise we get into a strange loop with sync and scan links
Once the active_message is cleared, we lose our ability to keep track of the failured message and corresponding failure_reason

To resolve this, moved failure_reason from the message object into BaseObject.
Merge pull request #166 from krkeegan/hop_tracking

Insteon: Clear No_Hop_Flag Even If No Debug; Don't Call Setby if Undef
Merge pull request #173 from krkeegan/fix_issue_168

Insteon: Catch and Log AllLink_Cleanup_Reports
Merge pull request #180 from krkeegan/fix_issue_83

Insteon: Fix Bug in PLM Sanity Check Which Caused Crash on X10 Messages
Merge pull request #189 from krkeegan/fix_issue_17

Insteon: Catch Error if Device ID in All_Link_Failure Does Not Exist
Merge pull request #190 from mstovenour/merge_i2_aldb_support

Merge i2 aldb support
Merge pull request #191 from krkeegan/fix_issue_177

Insteon: Update PLM Scene State on Change
Merge pull request #192 from krkeegan/fix_issue_185

Insteon: Catch Cleanup Messages Sent in the Same Pass as AllLink Message...
Merge pull request #194 from krkeegan/fix_issue_175

Insteon: Move Failure_Reason into BaseObject from Message
Merge branch 'master' into fix_issue_186

Conflicts:
	lib/Insteon_PLM.pm