(PUP-514) Change Puppet::Resource inferece to be Type[Resource]

This changes the inference of a Puppet::Resource to be
Type[Resource], instead of Resource. This because a Puppet::Resource
plays the same role as PResourceType - it is a reference to either
all instances of a resource type, or to one specific resource type.
(PUP-514) Accept Resource, or Type[Resource] when forming relationship

This makes forming relationships possible using either a
Types::PResourceType (or hostclass type) and a
PType[Types::PResourceType].

This was changed to allow Puppet::Resource to have the same semantics
as a PResourceType. (Currently 3x expressions produces instances
of PResourceType as the result of a resource expression, this is not
transformed back to a PResourceType, instead it is inferred to be
Type[Reource].
(maint) Remove pending tests for parsing functions in puppet
(PUP-514) Make Puppet::Resource behave as PResourceType wrt access

This makes Puppet::Resource behave as a PResourceType when using
the access operator; to detail a type with a title, or to
access a parameter of a typed/titled resource.

This is done to make differences between 3x and future planned catalog
builder transparent. 4x uses PResourceType as a reference to a
resource (handle/future ref), where 3x uses instances of
Puppet::Resource for both the instance, and references to it.
(PUP-514) Improve/add tests for typed parameters define/class
(PUP-514) Improve testing of typed parameters

This improves testing of typed parameters, and the ivolved
tests in general. One test moved from being an evaluation test
(it only tested parsing).

Iterative function testing changed to use better matchers.
(PUP-514) Clean up logic, remove dead code, improve naming.

This fixes up issues pointed out in the review of PR-2690.