Allow to create connection without putting it in supervisor tree.

The use case is for a process to create and link its own zookeper
connection.  If the process crashes,  any ephemeral node created by
it will be released.
Return recoverable error for pending request in case of connection lost

See http://wiki.apache.org/hadoop/ZooKeeper/ErrorHandling
Resend watches on reconnect

The watches are local to the node the client is connected to.
If the node reconnects, it should set all the watches again,
not only on session expiration.

See https://github.com/python-zk/kazoo/issues/29
    https://github.com/python-zk/kazoo/commit/3a6883170311c2656aa7ffea4e47f1187ead5404

Note:
	I don't know if the same applies for reconnections to the same
zookeper node, here we don't care and always re set the watches.