Added support to recursive variations.

Also a new structure MoveText is defined, to hold variation information
about each move. The parser now returns lists of MoveText instead of
lists of Strings.