Workers have access to scheduler functions, remotely

I've refactored the `AbstractWorker` to give access to a scheduler object, which encapsulates the functionality available on the remote scheduler to a worker.  I've also introduced the ability to query the scheduler for all jobs through this interface.