Added undo and redo functionality along with an edit menu and associated
undo and redo items