Added AtomicStateException to be thrown in cases when an attempt is made
to operate on a closed AtomicOperation. Additionally, if a call to #add
or #remove fails, then the AtomicOperation is aborted.

Callers should now be mindful of the fact that an AtomicStateException can
be thrown and should catch that and handle it.
implemented revert() in the server as an AtomicOperation