Basic ideas for job management in place, not yet functional.

Using a thread-pool (though I generally prefer data-queues and
workers) for now. All the "state" of the jobs is managed via a context
object held on to by the caller rather than stored in a private global
state var.