Add structure and supporting code for modules; add Campaigns module.
* Add config/modules/.
* Add hook-aware post-login homepage.
* Add flexible character module property database table, plus
* Add Config.modules.
* Modules are imported dynamically with a _provided pseudo-module that
contains their Flask blueprint and a config reference.
* Add stubs for Map, Members, and Intel modules.
* Implement starting code for Campaigns module.
* Update sample config.
* Update database schema with foreign key constraints (unused for now).
* Restructure header HTML and desktop CSS slightly to cleanly display
large navigation bars.
* Dynamically generate navigation bar.
* Properly align character options popup with portrait.