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.
For better or worse, doing `script/run-integration-tests` twice in a row happens to do so; nothing is cleaning up the host state file.  But I'm just happening to cover that ground manually at the moment, which is yeah, less ideal than a proper test.