Reactive Slick

Here's the ongoing work on Reactive Slick.

/cc @cvogt for review later
That's what you get without `asTry`. Primitive Action combinators are expensive to implement. You need to reify them in a case class, add an interpreter to the execution engine and provide a separate, synchronous implementation for fused actions, so we don't want to have a ton of them. With `asTry` it is possible to reuse standard combinators like `andThen` and `flatMap` for error handling.

Besides, I don't really understand your aversion to `Future[Try[T]]`. It's like saying we shouldn't have `Try` at all and only use `try ... catch ... finally` instead. A first-class `Try` value allows you to abstract over error handling, using the same code paths for errors and successful results. It's the for `Future[Try[T]]` vs `Future[T]` for asynchronous operations.