Support for etcd v2.

Salient changes:
- use Jackson instead of Gson
- this allows us to use immutable classes
- drop support for v1 API
- renamed testAndSet to compareAndSwap to be consistent with etcd
  terminology
- changed return type of compareAndSwap to void. Returning the oldValue
  isn't useful (the caller already has the oldValue). Also,
  https://github.com/coreos/etcd/issues/428