Cooperative cancellation for async-std.

Status: experimental.

See crate docs for details

```rust use stop_token::StopToken;

async fn dowork(work: impl Stream, stoptoken: StopToken) { // The work stream will end early: as soon as stop_token is cancelled. let mut work = stoptoken.stopstream(work); while let Some(event) = work.next().await { process_event(event).await } } ```