major display refactoring

- optimized the map drawing so that only the visible area is rendered on
buffer
- the map is now only re-drawn if there was a change, instead of being
remade for every frame
- made the map fullscreen and all UI panels independently toggable

TO-DO
- reduce map buffer to just visible size, to optimize more