Job state awareness v2

Jobs are now listed from the database rather than the cluster, and the scheduler is responsible for updating job state whilst watching hosts.

This currently fails to track one-off jobs which do not have a type because process_type is a required field in the database (so [this](https://github.com/flynn/flynn-controller/blob/job-state-awareness/scheduler/main.go#L243) will return an error). Should we assign those one-off jobs a special type, or make the field not required?

This depends on #18 so includes a commit from that, but I will rebase once that is merged.