Add blanket impls to allow the various `Fn` traits to be interconverted.

Add blanket impls to allow the various `Fn` traits to be interconverted.

Fixes #18387.
Is this still needed? I thought it was only needed until a snapshot landed and could be replaced with `extern "rust-call"`