Use list instead of dictionary for variations
Allow promoting and demoting variations
Parse game headers from file
Make SAN parsing exceptions more specific
Implement movetext parsing