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

Fixes #18387.
auto merge of #18388 : nikomatsakis/rust/fn-trait-hierarchy, r=huonw

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