Numerous updates made

- Fixed threading issues
- Separated code out into a number of files for readability
- Main constructor for the game is now a JPanel class, more flexibility
with slotting it into different GUI arrangements that having the game
constructed in a JFrame.
- Added a basic GUI that so far only has two buttons, one to start the
game rather than it starting automatically, and one to reset the game.