Fixed the SGF parser to be much faster, and not load all the JSON nodes twice.   It now parses into a gametree, and uses a simple stack instead of needless recusion.

Also changed how the navtree text is generated.   The sgf parser should include the move number in the future in the node, so it can easily be accessed without traversing the tree.