(PUP-2898) Add support for Resource Expr with Class type_name

The specification states that a QualifiedReference of Class should have
the same meaning as if Resource['class'] or the keyword class was used
as type name in a ResourceExpression.  This commit makes it so, it used
to raise an error.

It now also checks if a given Class does not reference a specific class.
I.e. Class[foo] is not allowed.