(#22363) Add evaluation of Resource Expression

This adds support for evaluation of resource expressions.
The TypeCalculator can now infer a Resource type from a PuppetResource.
The evaluator can create new resource instances.

Most parser tests are now passing (but a rebase is required since
grammar is at par with head, but not the tests).