[utils] New networking API that abstract how to resolve names and protocols.

Add mono_get_address_info abstraction around getaddrinfo / gethostbyname.

Add functions to retrieve a protocol number.

Finally, add a function to do basic setup of a sockaddr in a portable way.
[runtime] Use new networking abstractions to remove a lot of duplicated code.
[io-layer] Remove dead code.
[runtime] IPV6 is now the norm so we can expect all systems to have it.
[utils] Add abstraction to retrive the local interface addresses.
[runtime] Change socket-io.c to use new API for local IP discovery.