RFC: Add SocketAddr conversion trait to std::io::net and generalize socket constructors

[Rendered view](https://github.com/netvl/rfcs/blob/master/active/0000-socket-addr-conversion-trait.md)
For the `get_host_addresses` use case, this will likely want to return `IoResult<Vec<SocketAddr>>` so the `TcpStream::connect` layer can choose between the addresses it receives.