Add test for AtomicUpdate

This PR also implements FakeEtcdClient.CompareAndSwap.

I'll squash this PR after review.
Is TestIndex something that is generally useful enough that it should default to being on?