Refactor service and aspect composition

* Replace context dependencies with responder
* Segregate responder interface from delivery (HTTP, Null) adapter interface
* Add helper methods to application for service composition

May consider using objects for lazy execution and composition of service
objects as these are easier to inspect on the console.
DRY up handling of missing parameters

Should this respond with 400 rather than 422?
Test and refactor missing parameter behaviour
Keyword args cause symbol/string flip flop

All keys are now symbols as soon as the HTTP (Sinatra) boudary is crossed.

Previously keeping "data" as string symbols seemed better but both Sequel and
keyword args rely on / provide symbols.

This is no longer poses a memory problem as the params are whitelisted before
their keys are cast into symbols
Merge pull request #22 from alphagov/service-composition-refactor

Service composition refactor