Add test for AtomicUpdate

This PR also implements FakeEtcdClient.CompareAndSwap.

I'll squash this PR after review.
I would say that for clarity it's better.  Panics are pretty easily spotted and go test handles them cleanly.