Client Improvements

1) If an IP address is passed as the first argument to the `Client` constructor, we don't attempt to do name resolution.
2) You can now specify the `source_ip` you want to use for `Client` connections.

This should all be backwards compatible.

Thanks to @dliappis for the suggestions and pre-review of the code.