ATM Async Utils

A few utilities for implementing and testing futures::Sink and futures::Stream related code.

For the TestSink, the code structure, api and doc comments are based on the partial-io crate.