Instrument network calls

This PR works to add hooks for instrumentation/logging around network calls.

This specific implementation works well with [`ActiveSupport::Notifications`](http://api.rubyonrails.org/classes/ActiveSupport/Notifications.html) but does not depend on it, only on an object that responds to `instrument(event_name, payload, &block)` (like the `MockInstrumentationService` for the tests).

This wraps the new private methods `Net::LDAP::Connection#read` and `Net::LDAP::Connection#write`.

Thoughts?

The value of this hook is that we can get insight into the `content_length` for instrumentation purposes. Without this, there's no way (other than perhaps passing in the `payload` as a parameter) to get this data.