* continually track the scroll position via 'on "scroll"'. this
eliminates the need to requesty the current scroll position before
performing a navigation update, which simplifies the code.
* include the scroll position as a query param in the url. this make
it visible to navigation actions initiated by the user via
back/forward, so we can restore it.
* when reacting to back/forward nav actions, we have to take care to
control the ordering of updates:
* (1) so that we wait to scroll until we've rendered the album or
albumlist that the scroll goes with.
* (2) so that the url doesn't appear to change in weird ways.
the PostLoadNavState approach may be all that's needed for (2), but
the Sequence / SequenceCmd stuff is probably necessary for (1) due
to the lack of ordering guarantee given by Cmd.batch.