Disallow implementation of cross-crate priv traits

Turns out we were just forgetting to encode the privacy for trais, and
everything without privacy defaults to public!

Closes #11593