(maint) Add support for creating the PType (metatype) in type factory

This method was missing.
(maint) Add support for Type[T] in access operator

This makes it possible to parameterize a Type from the Puppet Language.
e.g. support:

    Integer =~ Type[Integer]  # true
(maint) Add test of Type[T] access operator.
(maint) Add support for Type[T] in TypeParser

This makes it possible to go from String form to Type.
(maint) Add support for Ruby['classname'] in access operator.

There were also several problems since the existing behavior
did an inference of the type parameter thus always arriving
at Ruby[String]. From the Puppet Language, the parameter is
always a String containing the class name.
(maint) Add test for Ruby['classname']
(maint) Add support for Ruby['classname'] in type parser

This makes it possible to convert from Ruby type in string form
to a RubyType.
(maint) Add support for Collection[<size constraint>] to type parser

The type parser testd that Collection[from,to] resulted in error
while this is supported as an access operation. Should have been
the same in both places.

This allows a Collection in string form to have type parameters for
the size constraint.
(maint) Correct assignable? for Type without type parameter

The expression Type[Integer] =~ Type should produce true but did not
since it only considered the parameterized case.
(maint) Add test for Type[Type[x]] instance? operations

There were no testing of meta type matching when there is meta
type regression (the type of the type of the...)
Merge pull request #2197 from hlindberg/maint_type-type-not-handled-correctly

(maint) the type type not handled correctly, and other type system adjustments