WIP #16543 add directives to add or remove trailing slash

Added two directives as said in #16543.

Need to discuss:
- The location of the directives: `PathDirectives` or `RouteDirectives`?
- Returning status code to redirect: 301, 302 or make it configurable? 
- More tests
- More documentation
- etc.
@sirthias I misunderstood about the empty path, will remove that match and related test case.
@2beaucoup Nice catch. IMHO, the current implementation is short enough because the URI should be extracted anyway and `Path::endsWithSlash` already has an use case elsewhere.