Added persistent undo feature (and a substitute builder for SCons)