Rewrite the base worker to not require a Queue for instantiation

This PR makes it so that you don't have to instantiate a Queue in order to instantiate a Worker, which should mean that you can write specs for custom Workers without having to have a running redis instance.

This should help with the root cause behind #4.