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.
That got me wondering why url is absolute here. The reason seems that TestKit calls `Request::withEffectiveUri` which the "real" server doesn't.

I'd suggest to remove this from `TestKit` (and from `HttpRequest`) and introduce `extractEffectiveUri` as a directive. This could then be reused in `redirect` and friends.

That way we are always explicit as to when the transformation from real to effective happens.

WDYT?