maint: Unify 'type' and 'classref' non-terminals in the grammar
These both wrapped the CLASSREF token, except 'type' created an
AST::Type object, whereas 'classref' just extracted the string value.
This change removes the 'classref' non-terminal, replacing its uses with
'type' and explicitly extracting the string value from the AST::Type
instance.
Ideally, this should probably either retain the AST::Type object and
evaluate it where it's used, or remove the AST::Type leaf entirely, as
it has no actual behavior of its own.
Also removed some dead warnings (they were warning on a lower-case type,
which can't happen).