Move app to Silex, add behat tests

There's a behaviour change to be aware of in this PR - before, the commands would echo out anything to be sent back to the calling user directly, and return a response to be sent to the slack channel.
Now, a returned response it sent directly to the user, and anything to send to slack needs to be done so via the injected Slack service.
I removed this as it seemed that the dependencies for each Command could be different, and as each is created by the DI container, there's no need to have the constructor as part of the interface.