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