Added a proper PGN parser that understands comments, annotations and variations.