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.
A tiny compromise to make testing simpler