Provide faster record dispatching for protocols that do not have fallbacks.

Currently, if a protocol must be implemented for records but
not for tuples or any other data type, we simply dispatch to
the given tuple, assuming it is valid.

The downside is that we don't show `Protocol.UndefinedError`
messages if the protocol is invalid, but that can easily be
inflected from the underlying UndefinedFunctionError message.