reimplement MapScene as QWidget subclass

which uses paintEvent to handle drawing the entire 2D view instead of
the somewhat cumbersome way it was being done before
draw outer rectangle around grid
better handling of font metrics for MapScene