MarshallingDirectives, FormFieldDirectives, and more

It may not readily show but this PR has been keeping me busy for far too long.
Due to numerous interdependencies it addresses 3 tickets at the same time: #15927, #15923 and #16190.

I'm glad to finally get this beast of my table! :)
Interesting idea to move the `def supported` into `EnhancedFromEntityUnmarshaller`. You'd have to turn it into a regular class though (currently it's a value class).
The problem with this approach is that we'd have to somehow ensure that every `FromEntityUnmarshaller` we get is indeed an `EnhancedFromEntityUnmarshaller`. Otherwise I could throw an `UnsupportedContentTypeException` from my own (different) implementation and things would break. We could make the constructor of `UnsupportedContentTypeException` `private[akka]` or think of another solution.
But this all seems much more ugly than the current solution.