Add support for passing in sockets

The docs specify that you can pass in a preexisting socket but
prior to this commit, that was not actually the case.
Merge pull request #32 from zsprackett/master

Add support for passing in sockets