I wrongly assumed that addMoveAt() already converts castling notation
for us, but that function is only called when new nodes are added to the
move tree in an active game, but not when parsing a study chapter.
This is why #2255 fixed the bug of a mve being incorrectly interpreted
as alt-castling, but it now broke the annotations if the move actually
WAS a castling move.
Luckily, while in addMoveAt() there are some heuristics because we only
have the UCI move, not the SAN move, in the AnalysisBoard we *do* have
the SAN move, so we can just check for O-O/O-O-O to avoid false
positives.
Resolves#2231
* fix: don't try to account for alternative castling notation in annotations
This leads annotations being displayed on the wrong square e.g. when
moving the rook from e1 to h1 (as its incorecctly interpreted as a
castling move).
Luckily, we already convert alternative castling notation when constructing the
node tree, so instead of extending the logic in the AnalysisBoard, we
can just get rid of this logic entirely.
Fixes#2231
* add regression test
- Settings are now split per study, broadcast and analysis
- Add a toggle to expand/collapse engine lines to save space
- Display player names and clocks for lichess game analysis
- When viewing a game from another player, it now goes directly to analysis screen and at game start
- removed ArchivedGameScreen
- Improved game sharing menu in analysis screen
- Add a button to bookmark a game from analysis screen