Remove rs_job_s_complete() state function and instead use NULL to
indicate when the job has completed.
Change rs_job_complete() to require the tube is empty when the job is
done and never return RS_BLOCKED. Added asserts to check that this
precondition is met, and that the result is a terminal value.
Added precondition asserts to rs_job_iter() to check its arguments.
Refactored rs_job_work() to be more efficient and continue iterating
after the job is done until the tube is empty before calling