Add state handling to handler processing

- Use <plugin_dir>/config/HandlerState to manage plugin state
GetHandlerState: default to 'NotInstalled'

- Return 'NotInstalled' rather than None if GetFileContents() returns
None
Check exit code in launchCommand()
Fix launchCommand() timeout loop

- Fix timeout loop for new exit code checking
- Misc. logging fixes
Clarify loop expression
Suppress spurious logging for non-JSON handlers.
Merge remote-tracking branch 'upstream/2.0' into XMLExtensionError
Merge pull request #33 from szarkos/XMLExtensionError

Suppress spurious logging for non-JSON handlers