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.
Just wanted to keep the `Path` look simple, but upon reading the tailrec usage it seems better to embed it not to polite the private namespace and to avoid jumping around to understand the code. Thanks!