Add undo/redo functionality to editor

This commit adds an undo/redo manager. It allows for the user to undo or
redo an action made in the editor. Uses a real undo/redo stack.