Resolves #219.  Changed the way it counts "am I at the end" to handle

the square-bracket list index style (where there's a "]" token node after
the last index, unlike with the "#" syntax where the index is the last
node there is.).
This is just the node index within the sub-portion of the program consisting of the single term arr[i][j][k] or arr#i#j#k, not within the entire program.  So what happens if you advance it by too far, is that the loop "while (nodeIndex < node.Nodes.Count)" ends.  Which is what we want.

If the indexes are being done this way: "#i#j#k", then we skip 1 term each time, thats' why its a +2.  If the indexes are being done this way: "[i][j][k]". then we actually need to do a +3.  This is why there's that check on line 855.  If we "landed" on a squareOpen, then skip one more ahead.