Those features are implemented using AsyncFD. While write doesn't
require a mutable reference to self, read does.
Make Async Tun a feature
remove async tun from workspace
rename write/read to send/recv
This involved refactoring the crate structure to share code between
macOS and Linux. The new methods have not yet been implemented on
macOS, but they have todo!() placeholders.