[IMPLEMENT] Add a Matcher class and tests for it.

For use with modifiers. This way we can filter which nodes get
passed to the modifier.
index on dev-modifier: 5312455 [IMPLEMENT] Add a Matcher class and tests for it.
[TESTS, MATCHER] Complete the implementation of Matchers and related tests..
Merge the 'dev-matcher' branch into master.