Worker registry

(this PR depends on #24 and includes all of it's commits)

In order to make Shoryuken support custom message routing better I've pushed some code into a new class which I called the WorkerRegistry, which takes over from the WorkerLoader. WorkerRegistry defines an interface that subclasses must implement, and there is a DefaultWorkerRegistry which provides the normal Shoryuken behaviour. 

Publishing to sns topics is supported too.