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! :)
Currently yes.
We need to be able to feed an otherwise opaque Unmarshaller a `ContentType` that it accepts.
The only way to do this in the current model is to inspect the `UnsupportedContentTypeException` it produces upon content-type mismatches, which supplies you with a *range* of ContentTypes, which *might* be a true wildcard range but could also be a "singleton range" consisting only of one specific ContentType.