routing: improve PathMatcher infrastructure

- add `rawPathPrefix` and `rawPathPrefixTest` directives
- add `?` modifier to `PathMatcher`
- clean up `Slash` and `PathEnd` matchers to "only do one thing" (TM)
- remove `Slash_!` matcher