First pass at creating our own socket connections

This allows the user to set the socket options before the connection is
established. The previous approach of setting the options after the connection
was established was not correct.
Use keyword arguments to avoid ordering problems
Add comment and fix usage of setsockopt
Only pop source_address from kwargs after saving it

This test is no longer accurate
Remove the decorators for source_address testing
Merge pull request #427 from sigmavirus24/create-sockets

Fixed creating our own sockets.