Added leaderboard update contract

@isupeene  Introduced notion of a Stats class for the leaderboard to contain. Just a class that contains different integer counts for wins/losses/ties. Could add a contract for it with postconditons that it returns integers but I don't think this is necessary. Allows leaderboards to be displayed differently on clients if necessary. Could still default rank them some way in leaderboard function.
Did you want to save the whole gamestate?  Just a single number indicating the result should suffice.  But I guess we might want additional data from the game options, so I guess passing in the whole game makes sense, and makes things extensible.