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.
This would need to be named `Deserialize` for symmetry with the change to the `StateSaver`. In Go we typically call this method `Unmarshal` and the opposite `Marshal`. Thoughts?