Update Refactor

Each screen has an update function which is called every tick by the
game.  This is finally necessary because I want to separate update
logic from rendering.
-The World now caches off the visible tiles.  These are then reused
later in the frame when rendering.