(Continuation of #377)
The futures-io traits and tokio traits are almost identical except for different name for some methods.
And yet we have two separate impl with lots of duplicate code, having to maintain two implementations adds more burden.
It makes more sense to have a futures-io impl, possibly in a separate crate since futures-io is much faster to compile than tokio, and then simply have the tokio impl wraps its io traits in futures-io to use it.