Some improvements to Matcher performance / heap usage.
Matcher will now skip some object creation if it discovers a selector set key has already been discovered as a child.
Duplicate selector detection and removal when creating children axes in Matcher.
Child axes object creation is now skipped if no changes were detected from the axes in the parent (the axes in the child are copied from parent instead).
Attributes in the DOM now returned as a Collection rather than Set.