Import ParameterDirectives from spray

This builds on top of https://github.com/akka/akka/pull/16091, so you can ignore the first commit.
Reduction of allocations if a user mixes in the `Directives` trait.
This way all these directives are only allocated once, whereas otherwise they'd be allocated once per (re-)creation of an object mixing in `Directives`.