Make updates atomic from the client side.

Initial move towards atomicity through-out the stack.
This means that if you use the default client functions, you *don't* get atomic updates. I feel like maybe we should push it down even further, into the CLI. The only use case I can think of where you don't want atomic updates is if you're using the CLI to dump a json configuration from disk into your cluster.

I think the primary users of this client will be programmers, and I feel like they probably *will* want atomic updates.

I'm not 100% sure about any of that, though.