Timeouts & TTLs

Very much a work in progress, but attempts to put a deadline on all requests to Zookeeper. This will hopefully fix a number of suspected problems where calls to the library might never return.

 - [x] Switch logging to `seelog`, rather than `log` so we have more control over log levels
 - [x] Allow a custom request timeout to be set on a connection, defaults to `3s` which is probably far too high.
 - [x] Abandon requests which exceed the request timeout - applies to all requests
 - [x] Split apart timeouts and TTLs on Locks, allowing these to be set independently
 - [x] Return `ErrRequestTimeout` on request timeout

Unrelated, but used by the Lock implementation
 - [x] Add `Reconnect()` method which kills the ZK connection forcing a reconnect _...something something danger zone_

For the moment I'm not going to implement per request timeouts, as it's going to take me too long. One way would be a background worker running off a queue ordered by TTL (eg. [a priority queue](http://en.wikipedia.org/wiki/Priority_queue), [example](http://golang.org/pkg/container/heap/#example)) which on TTL expiry of a request fired a timeout error down the response channel.