Refactored game type declaration

Now uses an interface on GameType, a different attribute that implements
this interface to avoid serialization issues that would occur when
trying to serialize an Attribute. Simplifies Game, providing a single
property that completely describes what game is being run.
Added a mock game and a test

Only a single test for now, to be expanded in the future.
Added tests for PunkBuster deserialization