AUI-1104 Add Undo/Redo module

The first version of a simple Undo/Redo module.
To use it, the user should call the 'add' function whenever a new action that should support undo/redo funcionality happens. To be used by the UndoRedo module, actions just need to be objects with the 'undo' and 'redo' functions properly defined. Afterwards, the user can call UndoRedo's 'undo' and 'redo' functions, and the module will take care of undoing/redoing the right action.