(#6710) Support relationships for resources defined by other constructs
This adds support for using a variable, resource ref-like string, case
statement, selector, or array/hash access for either side of a
relationship. For example, it is now legal (if unwise) to write the
following:
notify { [a,b,c]: } $var = Notify[a] $var -> case 'x' { 'x': { notify { d: } } } ~> 'x' ? { 'x' => Notify[b] } <- "Notify[c]"