Initial undo implementation

There are too many things to say, but for a summary, please refer to email "Chapter N: Undo Support in Dynamo" dated September 16, 2013 :)