Change the library to accept a Connection interface.

This facilitates ZooKeeper mocking, while continuing to use the convenience functions around locking, etc.
Fix up imports to use the forked path in necessary places