Quick Cut at draw manipulation

Things have changes in that draw doesn't happen every time anymore.  It
happens once every time the map switches, and uses the entire generated
map as a scrolled background.  This was written in a car, and wasn't
looked at carefully after having seen it function correctly in both walk
and fly mode.  So this should be code reviewed at some point -- probably
along with a larger look at the code itself.  The whole dev has been a
little sporadic and ad-hoc, so I'd like to review, harden, and very
extensively document the code and this project.