Complete refactor of code organization

- Break down game.js into smaller modules
- Make use of game states to transition between different screens. Ex: boot, load, play etc
- Refactoring based on structure from lessmilk.com