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
If I understand this change correctly, whenever we need access to $this->sock, what actually happens is that getSocket() will be called, and therefore we get the sock from the IO implementation?

And I assume that's why you removed the $sock member variable on AbstractConnection?