Start of type system simplification.

The previous attempt at modelling the type system was overcomplex. In the
new system we have only three concepts: types, type constructors and
type implementations.

Type variables for type inference are represented as type constructors
lacking an implementation. One of the goals of type inference, then, is
to converge on types whose constructors have implementations and which
can thus have code generated for them.
Define the integer types in the new type system.