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 think this should implement an interface, which is then used for type-casting all over the place.
The main driver is that I -was- using the lunchbot.php script via CLI for manual testing without spamming the Slack channel, which has thrown up a few issues which weren't captured in the specs.