Import ParameterDirectives from spray

This builds on top of https://github.com/akka/akka/pull/16091, so you can ignore the first commit.
Sure, no problem. The code is still warm... :)
I'll rename to `BinaryPolyFunc`, the added verbosity doesn't hurt us here at all.