CHANGED:Refactored worker and queue interfaces to be similar. Changed test cases slightly. Discovered a problem with running tests locally. If queues are not empty due to previous test failure, the tests will not give proper results. Will add a method queue.ensureEmpty to prevent this