centralized routing and navigation menus

the latter required the former

the routing module now provides a register of all "known" (essentially,
referenced) resources, along with a map of links between them, which
prevents bloat in individual handlers

note that this module lists some resources which don't exist yet (e.g.
help, histories)

it might not look like it, but this took a lot of effort (assisted by
@cdent once more) - though possibly due to mental exhaustion (which also
accounts for the unfortunate lack of atomicity in this commit; there was
a lot of experimentation and discussion)

annoyingly, there's one pesky failing tests which I can't quite figure
out at the moment (it's late... ): the challenger redirect swallows a
page name - tracing this suggests the BFW handlers might not even be
triggered at all!?