Made application support more modular

Now uses the contractual gem to seperate out the per application
implementations into seperate classes. The ApplicationWorkerFactory
links up the config value with the implementation to use.