http: make RoutingSettings a property of the RequestContext

This is groundwork for upcoming PRs.

/cc @sirthias
Yes, good point. There are two issues:
 * even without this change we aren't consistent with the naming yet
 * this commit adds a third flavor

The basic reasoning behind this name was that 

```scala
withChangedSettings(_.copy(verboseErrorMessages = true)) {
   ...
}
```

IMO reads better than the alternatives.

That said, consistency is also nice. IMO active terms are nicer than the `with...` alternatives. So I propose to change the names like this:

 * `withChangedSettings` => `mapSettings`
 * `rewriteUnmatchedPath` => `mapUnmatchedPath`
 * `withSettings`, `withLog`, `withExecutionContext` => `setSettings`, `setLog`, `setExecutionContext`

This way we keep the otherwise established default of active/imperative forms and are consistent all over.

WDYT, @2beaucoup and @sirthias ?