Merge branch 'insteon_diagnostic' into running
Allow for State of 0

Fixes two things:
- Allows for a State of 0 to be recorded in the state log
- Allows for a State of 0 to be displyed through the web interface rather than N/A

Both issues arise from the use of conditional statements such as:
```
if($state){...}
```
rather than using
```
if(defined($state)){...}
```
As a result a state of 0 was always ignored.
Merge branch 'master' into running

Conflicts:
	lib/Insteon/BaseInsteon.pm
Merge branch 'Zero_State' into running
Merge branch 'fix_issue_258' into running
Merge branch 'insteon_thermo_i2' into running
Insteon: Check if Code Can do Engine_Version Before Calling It

Fix bad typos in coding.  Not sure why I was attempting to dereferrence an object.
Don't call engine_version on PLM object
Merge branch 'insteon_data3' into running
Merge branch 'running' into running_hopcount_scenebuilder

Conflicts:
	lib/Insteon/BaseInsteon.pm