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.
This is sort of an extra arbitrary code.  If we update for both players at once, we can use the same 0, 1, 2 code we use in other places, meaning tie, player 1 wins, or player 2 wins.