GameStatePacket implemented, but not tested.

The GameStatePacket has been implemented to be able to serialize a whole
GameState object into a byte[] array for sending over network. It can
also deserialize a byte[] array into a GameState object for the
occasions when this packet is received over the network.

The implementation has not been tested.