Support for job dependencies. Collapsed Jobs/Contracts into single Toshtogo protocol.

Collapsed jobs and contracts into the same interface because there are
too many natural interdependencies to cleanly separate them.

Pulled out some sub-namespaces to organise the code a little better.

Split up util.clj into some more targeted namespaces.