Make PGN parsing regex more robust
Allow 0-0 (zeros) for castling in PGNs
More robust handling of empty lines

As per the PGN standard an empty line (outside of any comment) terminates a
game. For more robust parsing the parser reads on until at least a single move
or termination marker is found.
Keep variation stack in bound during PGN parsing