MatcherContext: make subNodes an ArrayList

There was no reason for it to be a LinkedList anymore. There was only call to
.push() in the whole code: replace with with .add(0, xxx) instead.