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.
The "real" server doesn't call `withEffectiveUri`, yes, but it still does the same transformation:
https://github.com/akka/akka/blob/release-2.3-dev/akka-http-core/src/main/scala/akka/http/engine/server/HttpServer.scala#L67

So, all requests you get on the server side always have the uri being the "effective URI". As such there is no reason to introduce a `extractEffectiveUri` directive.