Static page generation. Closes #24

whether this is a good idea remains to be seen. It seems the entirety
of generated pages is a lot larger than the DB, so it should
only be used when disc space is cheap