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
SLES12 fix for wickedd-dhcp4

- set dhcp_client_name correctly for SLES12
- temporarily turn off the wickedd-dhcp4 service to enable our DHCP
client to obtain wire server endpoint address
Merge pull request #30 from szarkos/SLES12-Wickedd

SLES12 fix for wickedd-dhcp4
Merge remote-tracking branch 'upstream/2.0' into statemachine

* upstream/2.0:
  SLES12 fix for wickedd-dhcp4
SLES12 fix for wickedd-dhcp4

- set dhcp_client_name correctly for SLES12
- temporarily turn off the wickedd-dhcp4 service to enable our DHCP
client to obtain wire server endpoint address
Check exit code in launchCommand()
Merge pull request #31 from szarkos/statemachine

Add state handling to handler processing
Fix launchCommand() timeout loop

- Fix timeout loop for new exit code checking
- Misc. logging fixes
Merge remote-tracking branch 'upstream/2.0' into getexitcode

* upstream/2.0:
  SLES12 fix for wickedd-dhcp4
  GetHandlerState: default to 'NotInstalled'
  Add state handling to handler processing
Multiple FreeBSD fixes

- Fixup ovf-env.xml file broken by customdata
- Fix new DistInfo() function for FreeBSD
- Squelch a few (ignorable) errors in the log
Clarify loop expression
Merge pull request #32 from szarkos/getexitcode

Check exit code in launchCommand()
FreeBSD: bail out when provisioning as DISK
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.