Add option to supply custom socket

Accepting a custom socket allows the user to supply their own socket.

With this we can then use this library with an evented I/O TCPSocket, such as provided by Celluloid::IO
Merge pull request #2 from cpuguy83/patch-1

Add option to supply custom socket