Insteon: Add Function to Filter Out Duplicate Received Messages

This creates a log of recently received messages with a timestamp.  Subsequent messages are check to see if they match.  If a match is found and if they message was received within the time permitted by the number of remaining hops plus a little wiggle room, the message is dropped.

Fixes issue hollie/misterhouse#169
Insteon: Extend Temporal Search Window for Duplicate Messages

Apparently the prior settings were not catching duplicative device commands.  Unfortunately extending the window results in numerous false positives for direct ACK messages.  In order to prevent errors, only alllink related commands are examined for duplicative messages.
Merge branch 'fix_issue_169' into running_fanlinc
Insteon: Expand Duplicate Window for Messages Requiring an ACK

Move function which prevented sequential set commands in less than 1 second to BaseObject

Expand the logic of the duplicate message checker.  Attempt to take into account whether the message received requires an ACK.  If an ACK is required, attempt to catch duplicate messages which result from the failure of the device to receive the ACK.
Insteon: Fix typo in _is_duplicate_received
Merge branch 'fix_issue_169' into running_fanlinc