Use _type() to construct a type object.

This allows the Type class to be sub-divided based on the TypeKind
values and the APIs that can be called on the different types (e.g.
those that can only be called on arrays).