Tokio wrappers which apply timeouts to IO operations.
These timeouts are analogous to the read and write timeouts on traditional blocking sockets. A timeout countdown is
initiated when a read/write operation returns
Poll::Pending. If a read/write does not return successfully before
the countdown expires, an
io::Error with a kind of
TimedOut is returned.