Refactoring out common functions

* Moving building of network messages from the GameClient to a utility
class to respond to the growing size of the GameClient class.
* Wrote a lot more Javadoc for the GameClient.
* Refactored bootstrap code into a separate method
* Removed all the useless arguments from
`handleAuthMessageInRegisterState`