Introduce job state. (#56)

This way it is easier to reason about code using the TPIE job manager,
since the tpie::job will ensure that enqueue, operator() and done()
are called only at the right time.

This also allows a job to be reentered into the job queue if that is
wanted.
Add ut-job repeat unit test.
Add ut-parallel_sort large item test.
Merge branch 'job_state'. Fixes #56.