UI and code cleanup, first pass

Cleaned up the code and UI a bit.
Switched to using header and footer areas with scrolling for the
content in between.