Huge revamp of project & tests:

- Game class added
- All states and internal states are now generics-based
- Move class has been deleted, replaced with strings
- Previous moves must now be recorded by client
- New test framework/cases to test these changes