ADNKit patches

Hi! Here are a bunch of patches that we're using for ADNKit, which we wanted to be able to upstream. I believe I've made everything backwards-compatible with existing code. Here are the changes:

* Allow for a custom NSURLRequest to be used for socket creation, so custom headers like Authorization can be set
* Add delegate methods for bubbling up the state of the underlying socket
* Require certain reachability states for the socket to connect, e.g., require WiFi for socket use

Please let me know if there's anything you'd like to see changed.

Thanks!