Added redo/undo functionality, added saving and loading of canvas