changed type of FSTNode.parent to FSTNonTerminal.
A parent must always be a non-Terminal and this makes many casts redundant.
I found no situation where the object passed to setParent(..) might not be a FSTNonTerminal.
Merge branch 'parent_type_refactoring'