Cleanup MainWindow

Cleanup only, no logic change.
Narrow tab-switching shortcut scope
Remove MainWindow resizing hack
Fix a bug where some edge cell sizes causes sigfault
Implement resizing trigger on cell size change
Implement view centering on cell & window resize

Add a Tab class to wrap around View to do the centering.
All addTab calls now insert a Tab instance into the tab widget
instead of inserting a raw View object.