Insteon: Add Parameter to Allow Per Device Min/Max Hop Setting
Insteon: Fix Error in Logic Which Caused an Unnecessary Increase in Hop Count
Insteon: Add Parameter to Alter Send Timeout on a Per Device Basis
Fix issues with INSTEON lights in web interface

INSTEON lights are treated differently in the web interface versus X10
lights, for example: they get different icons, and cannot be dimmed or
brightened. This patch does the following:

- Use the same light icons for INSTEON lights that are used for X10
lights.

- Allow dimming/brightening of INSTEON lights by clicking on the left
or right side of the icon in the web interface (only dimmable light, of
course).

- Fix a logic error that prevents disabling the button image cache. Ran
into this while creating new icons for my web interface.

- As an experimental "feature", and a small delay to try to give MH a
chance to receive the new state of an INSTEON device changed through the
web interface. This will allow the correct state to be displayed when
the web page renders again. Disabled by default since it's just a hack
(though it works good enough for me).

Comments welcome.
Merge remote-tracking branch 'peloy/fix_issue_212' into fix_issue_212
Updated Insteon state definition for new Insteon object model

Moved responsibility for Insteon states out of http_server.pl and
into the Insteon objects themselves. (i.e. Insteon::DimmableLight)
The existing code was not working with the new object model.  This
is an additional fix for Issue #212.

Open Issue:  http_server.pl->button_action() probably needs to
be modified so Insteon lights dim/brighten correctly.  It
doesn't look like is_dimable() was ever implemented for any MH
object.
Corrections for setting Insteon device states for web

Flip order of on/off states to match new web object model
Used the set_states() function rather than directly
modifying data from the Generic_Item class.
Eliminated the save/restore of the "states" array.  I'm
not sure what the original pupose was but saving/restoring
prevents users from defining additional states in their ini
file.  Note that the current device "state" is still stored.
Make sure web icons show 'on' if light state is 100%
Better set of states for insteon_menu_states given new behavior
Fix issue where setting level 100% sets to 0xfe

Changed each instance of this calcualtion to use 5/4 rounding prior
to calling sprintf().  There is some issue between perl data types
and the C sprintf() implementation.  In this case perl will print
255 but sprintf will return fe.  Some instances of this were
previously fixed by adding check logic to force fe or 254 to 100%.
I modified all the instances to be consistent.
Make sure web icons show 'off' if light state is 0%
Merge pull request #231 from mstovenour/fix_issue_212

Fix issue #212 - Web can not dim/brighten Insteon lights
Fix issue #232:  fix automated version check

Modified to match recent changes to docs/download.pod
Modified to make revision optional. (i.e. 3.0 R1). If revision
is not present then don't print "revision unknown".
Updated syntax to eliminate perl warnings
Merge pull request #233 from mstovenour/fix_issue_232

Fix issue #232:  fix automated version check
Insteon: Reorganize Structure for Generating Voice Commands

Generate_voice_commands in Insteon.pm now calls get_voice_cmds for each object.
get_voice_cmds is written to be inherited and modified by higher level objects
This allows for unique voice commands to be added to objects in their respective class files without messing with the base Insteon.pm file.

This commit merely copied over the voice commands as they existed before with little to no changes in the voice command design.

Fixes hollie/misterhouse#181
Insteon: Add Voice Commands to IOLinc
Insteon: Add KeyPadLinc Unique Voice Commands

Moved update_flags routine to KeyPadLinc classes
Added unique voice commands
Insteon:  Add Unique Voice Commands to Motion Sensor
Insteon: Add Message Tracking Statistics Features

Added a number of functions to track message details.
Added functions to print message statistics to the log
Added functions to reset the message statistics
Added 2 voice commands:
- print message statistics - prints details on all devices to the log
- reset message statistics - resets the message statistics to 0 for all devices
Insteon: Fix Path Comparison in Windows for Update_Docs.pl

If inode==0 then we are probably on windows, so use abs_path to compare the two paths and see if they are the same.

I don't have windows so hopefully this works.

Fixes hollie/misterhouse#234