Use Rust's #[diagnostic::on_unimplemented(...)] and #[diagnostic::do_not_recommend] attributes to improve diagnostics messages for ink!'s "internal" "type-checking" abstractions
See #2722 for an example of leveraging these attributes to improve diagnostics messages