Host state database

Converts the host state persistence system to use boltdb instead of a json flatfile.  Fixes #532.

Changes to state of a job are now updated individually, rather than requiring complete reserialization of all jobs.
Could do `MarshalJobState`, `MarshalGlobalState` and `UnmarshalState` (which takes the list of host jobs, job state bytes and global state)?