[AutoDiff] Fix `@differentiable(linear)` type-checking. (#28927)
For all non-`@noDerivative` parameter and result types, `@differentiable(linear)`
function types should require and imply `T: Differentiable`, `T == T.TangentVector`
requirements instead of `T: Differentiable & AdditiveArithmetic`.
Emit `@noDerivative` fixit only when there is at least one valid
differentiability/linearity parameter. Otherwise, adding `@noDerivative`
produces an ill-formed `@differentiable` function type.
Update tests.