Revert feature for __set__

Changed __set__ to return a function that when invoked will revert the effects of having set anything.

I've been using a variation of this in testing to help clean the slate in between tests. Any thoughts on whether this is an ok feature to add? I would find it useful.