Unify socket addresses (string URIs instead of host+port)

This PR unifies the use of socket addresses. In particular, it tries to achieve a consistent and future-proof way to address sockets and addresses of incoming packets.

Things to consider:
* Every incoming message fires: `@event message($data, $remoteAddress)`
* Create a connected client: `Factory::createClient($address)`
* Create a server: `Factory::createServer($address)`
* Send a message from connected client socket: `Socket::send($message)`
* Send a message from a server socket: `Socket::send($message, $remoteAddress)`
* Get remote address of client socket: `Socket::getRemoteAddress()`
* Get local address for server socket: `Socket::getLocalAddress()`

Unlike TCP/IP there's no "established connection" to a remote peer, so we always have so specify an address for every message. As such, in an UDP/IP context the address always has the format `IPv4:port` or `[IPv6]:port`.

So while react's TCP/IP components often provide access to just the remote IP or local port, there's little use for it in an UDP/IP context. Using a string address also allows for easier extension once we start to support unix datagram sockets (UDG) or some of the lesser known protocols (see e.g. clue/socket-react).

Feedback welcome!

Also refs reactphp/react#199