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: 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