Gideon : Adapted  src/joshua/decoder/chart_parser/NonterminalMatcher.java
to use the new efficient nonterminal enumeration available in PackedTrie.
This is only done when the Trie datastructure we are accessing is in fact an
instanc eof "PackedTrie" or "PackedRoot".
In the latter case you have to look at the full symbol set anyway, so the fact that
the relatively ineffecient ExtensionIteration is then used is not an issue for speed.
In the case of "PackedTrie" getting the nonterminals is efficiently implemented as :

 public Iterator<Integer> getNonterminalExtensionIterator() {
        return new PackedChildIterator(position, false);
      }

were the PackedChildIterator implements efficient iteration over only terminals/nonterminals.