V2

Initial pass at a V2 implementation- the final product still implements `EtcdClient` but I think it can be refactored somewhat (and maybe moved into a separate package?), but I've been staring at it for the last hour or so. TBC...