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! :)
Yes, exactly.
Being able to know in advance, before attempting unmarshalling, whether an Unmarshaller does support a certain ContentType or not would require moving to quite different Unmarshaller model, which somehow allows access to the supported ContentTypes. However, this would not make sense for `FromStringUnmarshallers` for example.
There is a benefit to this very simple interface.
This place here is the only one where it requires some jumping through hoops (`retryWithPatchedContentType`).
But since the check and the throwing of the `UnsupportedContentTypeException` probably happens before any real work is done by the underlying Unmarshaller the added cycles should be limited and this solution acceptable.