Extract interface for MatcherPath and MatcherPath.Element
Make MatcherPath implement Iterable<MatcherPath.Element>
Some code cleanup
Reimplement MatcherPath
MatcherPath: add an .append() operation
MatcherPath: unimplement Iterable<Element>

Useless. For now.
Some more fixes to new MatcherPath implementation