detect missing trait methods at compile time (#3657)
Leaves the default implementations of a trait "in place" and implements
the "cross-trait" resolving differently
we get back the normal rust error messages when you don't have every
method implemented 🎉