Add failing test demonstrating deferred acks.
Make the test pass.
Ack only successful pending tuples, when some puts fail.
Clear both pending acks and the client write buffer on ack.
Only purge writeBuffer and pendingAcks when we notice a flush.
Refactor acking logic a touch.
Extract PutBolt#ack().

We're now free to use it in #flush() (tests pending.)
Ack pending tuples when explicitly flushing.