(PUP-3117) Complete the implementation of resource expression
This completes the implenentation of the Resource Expression.
- The LHS must now be a QualifiedName (i.e. file, notify), or a QualifiedReference (i.e. File, Notify), or an access expression with a left QualifiedReference (i.e. Resource[file]), or literal 'class'
- The result of the LHS must be a CatalogEntry type, and it may not be detailed to title level.
- The * => syntax can be used to to unfold a hash. It may be used once per titled resource body. Attribute names must be unique across the attributes set with name => expr, and those set with * => hash.