Several improvements to read loading and navigation

When zooming into base view, temporarily show the read outlines while we wait for the
bases to load.  Also properly preserve track locations when shifting between read
and base view.

Fix spinner / load logging to properly handle overlapping loads.

Ensure handleZoomEnd (and hence JSON read requests) is done exactly once for each navigation.
Previously there was some issue where clicking on the zoom buttons would call this once with
a bogus position (clearing the read cache) then call it again with the correct position.

When querying a subset of fields, request 1024 results (the max) instead of 256
to avoid getting any pages that are each small in size.  Add total read volume
logging to the client.  Tweak the cache factors to reduce the loads / delays
when at largest scale.