If the client disconnects with the ping_outstanding event set, when it reconnects the first timeout will cause a "dropped" heartbeat, and make the library reconnect yet again.
Instead of having it raise a runtime error have the calling thread block until the lock has been released (typically by some other thread). This more closely matches the existing and (assumingly) expected behavior of locks.
Refactor parts of the makefile and testing to support the currently standard tox command to test various environments. This also moves most of the zookeeper setup and teardown logic out of the makefile and into a specific script file that just does this setup/teardown.
Instead of having acquire be re-entrant but release remove the lock immediately we should just not be re-entrant at all since the current implemetnation is mostly broken in the first place (especially when the inner release will destroy other acquires...). Fixes #291