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.
That seems to be edging towards little vaccuous?  I'd rather add tests to cover that path per backend implementation.  Though if we alter the backend marshalling interface to convey more structure, that'd tip it towards more worth it to add a backend-independent test.  Right now it's just `[]byte` in, `[]byte` out.

It does look like there's entirely too few asserts going on here, but anything going wildly askew in backend restoration should also come out via a panic.