renamed endsWithThreeCharacters() -> endsWithThreeLetters()
fixed naming in NamePatternMediumTest
fixed NameMatcherMediumTest
refactored out PathPatternMediumTest from PathPatternTest
moved PathPatternGenerator to testing tree
added PathPatternGeneratorTest
refactored NameMatcher to implement Predicate<Path> not Predicate<String>
added MatchingPathsGenerator
added PathPredicates
refactored PathPattern to throw IllegalPathPatternException instead of IllegalArgumentException
fixed MatchingPathsGenerator and HelpTester