(PUP-511) specify resource expressions

This updates the resource expression specification to be in line with the changes from PUP-2898. It also removes a few warts in the specification around Q- and Non-value expressions, which aren't needed anymore.
This is wrong. It needs to allow arbitrarily nested arrays of `String[1]` and `Default`. For example: `notify { [[[hi, default], [there]], []]: }`