Part of the [revised diagnostic model] is to provide users with
diagnostics that explain what's going wrong from their perspective,
as opposed to from the compiler's perspective. This may be achieved
through a rewording of the reason, or by provididng more info, or both.
This commit also changes the diagnostic for an explicit template
parameter gone wrong to demonstrate how it works.