Speed up associative matching by pre-checking groupings to see if they
have any chance of matching before attempting full associative matching.
Added a tailrec annotation to GroupingIterator::hasNext().
In GroupingIterator::hashNext(), do the matching sanity check over all groupings before
actually creating the groupings.
Removed an unneccessary check from the AMatcher::hasNext() method.