Concurrency fixes

We've simplified the handling of concurrency by assuming that the state in the Schedulre Actor is thread safe by default.  Problems apparently related to concurrency turned out to be passing Jobs between Scheduler and Agent by reference, instead of value.  This leads to situations where state is manipulated by the wrong actor accidentally.  To fix this, we ensure that a Job is deep cloned before being passed on to an Agent!
Test fix