Refactor view layout code. Add sidebar (WIP)

This has the sidebar, as shown in the screenshots in the README.md.

Also attempts to refactor the view layout code. In particular the notion of scrollable views.