Added Contracts. Changed GameManager to class. Fixed CLIClient bug with ...

...blank lines.
@isupeene Added contracts and fixed bug where CLIClient would blow up if an empty line was input. 
Going to start commenting in this branch as I am not quite sure how to make a new one with this as the base.