This adds a pattern for creating pages that require authentication. The
settings page is currently empty, but it's helpful to figure out how to
do this pattern.
I originally wasn't going to do passwords, but after struggling with
webauthn I decided I'd just go for it. It simplifies the code a lot if I
assert that I always have a password, displayname, etc.