added a JoinGame endpoint. made game and game member finders not bork if the id does not exist - just return nil. REINTRODUCED the dual id of game members, since i want to have them BOTH below game and user - to do queries for both kinds in transactions. moved the member counting to the game member save instead of the save with game, so that we do it in any game member save. using GameMember#IdByEmail as "default" id of game members. filtering out the double game members found due to the dual ids using a simple map.