Discard knife after second use
Support notification of pump queue progress via topic().expect()

* Impl expect to publish and return a Deferred
* Listen to controller.sentinel topic in pump, queuing its deferred
* Resolve sentinel deferreds when reaching them in the queue
* Resolve sentinel deferreds when flushing the queue