Add getters to MatcherPath and MatcherPath.Element

Goal: make them interfaces, again.
Start and reimplement MatcherContext
Extract interface for MatcherPath and MatcherPath.Element
Some code cleanup
Reimplement MatcherPath
MatcherPath: add an .append() operation
Some more fixes to new MatcherPath implementation
Try and replace old MatcherPath implementation with new one but it fails

And I don't know why. Timeout on ONE test, only one. And I can't figure out
where the failure is...
Implement equals and hashCode to DefaultMatcherPath

But it still does not help.

Why? :(