Reactive Slick

Here's the ongoing work on Reactive Slick.

/cc @cvogt for review later
@rkuhn This won't work. You need to manage two different AtomicLongs (or implement a custom spin-lock to protect concurrent updates to two different vars). For the purpose of demand checking, the publisher must decrement the demand *before* delivering it, but for the handshake between the publishing thread and request(), the publisher must decrement the demand *after* delivering it. (It's probably different in akka-streams. If your Publisher is run by an Actor, request() can send a message to it before it has finished delivering the previous demand. In this case, the second atomic transition happens in the publisher's mailbox)