Modified PropertyValueReference to cache the value

This also happens to fix bug #22006 and bug #22013
due to the fact that the second time we evaluate
the property in order to get its children, the
ctx.Options.AllowTargetInvoke is false.