[AutoDiff] Serialize derivative function configurations per module.
`@differentiable` and `@derivative` attributes register derivatives for
`AbstractFunctionDecl`s for a particular "derivative function configuration":
parameter indices and dervative generic signature.
To find `@derivative` functions registered in other Swift modules, derivative
function configurations must be serialized per module. When configurations for
a `AbstractFunctionDecl` are requested, all configurations from imported
modules are deserialized. This module serialization technique has precedent: it
is used for protocol conformances (e.g. extension declarations for a nominal
type) and Obj-C members for a class type.
Add `AbstractFunctionDecl::getDerivativeFunctionConfigurations` entry point
for accessing derivative function configurations.
Use `AbstractFunctionDecl::getDerivativeFunctionConfigurations` to
implement `findMinimalDerivativeConfiguration` for canonical derivative
function configuration lookup, replacing `getMinimalASTDifferentiableAttr`.
Unblocks TF-815: lowering `@derivative` attributes directly to SIL
differentiability witnesses without generating implicit `@differentiable`
attributes.