Navigation now basically works

We now read hashchange and respond to it.  And relative URLs are now
hashified.  So most normal navigation now works as expected.

This is a tad hacked: introduced a class above Decorator, which is
defined separately on Server vs. Client.  This is, frankly, to avoid
breaking existing tests.  It may prove to be pointless, though; we'll
see.