Include what kind of token was found in the error message.
For motivation, imagine a new MLIR user defines a custom dialect type for
booleans and writes .mlir code:
func @xor(%a: bool, %b: bool) -> (bool) { ... }
They will get an error message saying "expected non-function type",
pointing to bool. This can be confusing to a new user who doesn't
realize the issue isn't that the parser thinks "bool" is a function
type, it's that the parser thinks "bool" isn't a type at all.
With this change, the error message reported is now:
"expected non-function type, but found bare-id"
Hopefully that gives a better hint to the user that bare-id isn't a type.
This makes this message inconsistent w.r.t all of the other "expected" messages.