DataWatch: Pass all _func calls through _log_func_exception
watchers: Add ability to pass WatchedEvent to function

Provide a new flag for DataWatch and ChildWatch __init__, send_event,
that if set to true, the WatchEvent is passed to the decorated
function. In case of the first call or when calling the function upon
returning from a disconnect, this event is set to None.

The commit won't break existing use of the watchers as the send_event
defaults to False.

References GH-79.
add timeout param to Lock
Handle non-deserializable connect response

This problem has been seen sporadically in production but the
exact cause is not clear. Occasionally the client receives
a connect response that it cannot deserialize. This results
in an error and leaves the client in a zombie state where it
no longer attempted to reconnect.

With this change we catch errors and raise a ConnectionDropped
error. This is caught by the outer connection loop and the client
continues attempting to reconnect.
Merge pull request #95 from labisso/connect_deserialize

Handle non-deserializable connect response
make Close and Ping print the same as the rest

This makes the log message look like

Sending request: Ping()

instead of

Sending request: <class 'kazoo.protocol.serialization.Ping'>

Constructing a Ping object for each ping generates a lot of unnecessary
temporary objects, though, so this also creates a singleton object to
use for it.

It makes the equivalent change to Close for consistency's sake.
fix connection dropped message
fix pipe leftover data
Add test for issue #94
Changelog entries for issues #94 and #95
Merge pull request #86 from novas0x2a/logging2

Split out the uncontroversial logging changes
Patch for Kazoo issue #87 (https://github.com/python-zk/kazoo/issues/87)
Add issue #87 to changelog
Merge pull request #93 from DataDog/lock-timeout

add timeout param to Lock
brush up lock docs a bit
order imports
Merge pull request #96 from mrtheb/master
small code/docs cleanups
give `test_lock_timeout` a bit more time
tweak `test_lock_timeout` timeouts