Modified hop count tracking to use running average vs. max

In addition to the running average implementation, this update also
provides a few slight performance optimizations.  One of the primary
advantages to this algorythm is that it does not need to loop over
then entire array for each hop count update.  Also enhanced log_aldb_status
a bit to include the device name.
Merge branch 'master' into enhance_hopcount

Conflicts:
	lib/Insteon/BaseInsteon.pm
Insteon: Enhance HopCount, Change to Average of 10

A moving average of the last 20 hop_counts was a bit excessive and required 10 messages before a hop count would change.
Insteon_HopCount: Check Per Device Setting on All Calls to Default_Hop_Count

Moved per device setting outside of logic so that they are checked even if a hop_count is not passed.
Insteon: Add Is Deaf Routine for Battery Devices

Closed #279
Insteon: Add is_deaf Check to Sync Links, Fix Dumb Typo

Fix Delete Orphans Logic, had that backwards.
Insteon: Not All References are to Self

Reminder to self: don't use find and replace
Insteon: One More Typo
Insteon: All_Link Cleanup Check for Active Message

Before calling setby on the active_message, make sure that an active message exists.
Merge pull request #285 from krkeegan/ref_activemessage

Insteon: All_Link Cleanup Check for Active Message
Fix typo in description of base device's is_deaf default.
Merge pull request #19 from pmatis/fix_issue_279

Fix typo in description of base device's is_deaf default.
Merge pull request #282 from krkeegan/fix_issue_279

Insteon: Add Is Deaf Routine for Battery Devices
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
Insteon: Fix Return from i2CS to Link to Interface

Was in the wrong location, which skipped adding the controller record on the device for device->PLM
Merge pull request #291 from krkeegan/insteon_link_i2cs

Insteon: Fix Return from i2CS to Link to Interface
Insteon: Prevent Success Callback from Running on Get Engine NACK

Both the success callback and the failure callback were being called on an i2CS device when using the command link to interface.
Merge pull request #292 from krkeegan/insteon_i2cs_linking

Insteon: Prevent Success Callback from Running on Get Engine NACK
Merge pull request #266 from krkeegan/enhance_hopcount

Insteon: Change Hopcount Calculation to a Moving Average