Expose connection socket to client

This PR exposes the server socket to the client through `getSocket` methods on `Connection` instances and a `getConnection` method on `Channel` instances.

A use case for this is when you want to customise how you wait for data on the socket, like the example given in `demo/amqp_consumer_non_blocking.php`. These changes will allow you to call `Connection::getSocket` or `Channel::getConnection::getSocket` to retrieve the current socket, and should hopefully be agnostic of the connection and IO type in use.

Please let me know if this can be done a better way!

M
that's an interesting question actually