Remove objectProxy() from Connection, was causing conceptual issues and name collisions.

Issue #230 was caused by a colleciton between net.Socket.connect and Connection.connect.

Rather than proxy all methods directly into Connection and defining getters and setters,
this patch instead proxies the methods that would likely be used but keeps the socket itself
on `connection.socket`. We simply proxy events from the socket to the EventEmitter on the
connection itself.

This eliminates the slow getter/setter proxying, the confusion surrounding name collisions,
and eliminates the need to rebind handlers on reconnect.