Add basic undo functionality for adding GuideMarkers

We add an UndoStack class and helper command classes which can manage
the do, undo & redo semantics.

We replace the necessary parts of GuideMarker creation with command
objects which encapsulate the changes in an undoable fashion.

We add an Edit menu to the main application window with Undo & Redo
entries which rely on the UndoStack interface to perform their roles.
Add error handling for reaching the end of the UndoStack

And the end of the redo stack. Report errors using the status bar. Clear
it on successful execution of a redo or undo.