ATM Async Utils

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

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