mobility: fix bugs discovered by running pgns through the parser
halfmoveclock: initial implementation
pgn: unified parser just handles tags the same as annotations

This is also going to make the parser more liberal, and when it comes
to PGN parsers, the more liberal, the better.
test: add some pgn tests for starters