Implementation ver. 2

Implemented App object in the main module
- mainloop and tick scheduling handled at the top level, rather than by
the GUI code
- App object manages interaction between the board logic and GUI display
- Eliminated global variable for board data, and the dynamic injection
of functions into the gui App object
- App and GuiApp strongly coupled, preferably ought to be modularized
better

Separately, a bug in the GUI code allowing the 'flipping' of an area
outside of the grid by clicking on a region 1-pixel wide was fixed.