[AutoDiff] Support `@differentiating` with extra generic constraints. (#23384)
Support `@differentiating` attribute on derivative functions with more generic
requirements than the original function. This functionality is the counterpart
to trailing where clauses for `@differentiable` attributes.
Currently, the extra requirements are used when constructing a
`@differentiable` attribute on the original function. Eventually, these
requirements may be stored in a SIL differentiability witness.
Resolves TF-358.