Elo ratings are stored per game type, so the leaderboard now always
requests /api/leaderboard?game_type=<id> and shows only that game's
players, Elo, wins, matches and points instead of mixing all games'
aggregates with the default game's rating.
- api::leaderboard takes the game type;
- a "Game" dropdown next to the heading lists every registered game and
reloads the board on change (stale in-flight responses are dropped);
- move fallback_game_types() from the lobby to model.rs so both the
lobby and leaderboard selectors work when /api/game-types fails.