Ability to resize window

Fix the inability to resize the window without forcing a restart, issue #40. This solution is not ideal as the OpenGL context needs to be reloaded meaning it takes a small amount of time for the window to resize, but it seems like a limitation of PyGame.

Still TODO: Change the layout of some UI components to handle resizing