Package restructuring

We have accumulated classes and functions in a sort of hodge-podge manner, and I think we should do some reorganisation.

.
└── src/
    ├── components/*.jsx # "UI-only" React.js components that delegate as much as possible to code in lib/
    ├── contexts/*.jsx   # React.js contexts, e.g. metadata and user prefs
    ├── lib/*.js         # Vanilla JS classes and functions that do "all the work"
    ├── style/*.css      # CSS snippets (if needed at all)
    ├── config/*.json    # Build-time configuration
    └── App.jsx

JSX code should only live in App.jsx, components/*.jsx and contexts/*.jsx. The code in lib/ should have no JSX and ideally no external dependencies.