Start of redesign of GUI and underlying code

Currently does not build, only part way through the refactor.  The UI
elements have been refactored into a separate widget.