RFC to require `impl MyStruct` to be in the same module as the definition of `MyStruct`

This fixes #15060 and #3785.
Merge remote-tracking branch 'origin/master' into anonymous-impl
RFC #57: Anonymous impls only in the same module