Added a Save command and made the frame title reflect whether we're
working on a file or not and whether we're in a dirty state or not.
Refactoring the UI code.
Added PolledModel and a basic undo/redo mechanism.