Break 'Kitten.Types' into modules.

Annotation        Type annotations
ClosedName        Closure variables
Config            Compiler configuration
Definition        Function definitions
Fragment          Program fragments
Import            Module imports
Intrinsic         Intrinsic functions
Kind              Type kinds
KindedId          Type-safe ID generation
Operator          Operator declarations
Program           Compiler state
Term              Expressions
Token             Tokenizer output
Type              Inference output
TypeDefinition    ADT definitions
Replace uses of 'Text' for naming with a  'Name' type.

A 'Name' may be unqualified, qualified, or mixfix. An unqualified name
is just text; a qualified name is a sequence of unqualified names,
separated by underscores. An unqualified name may no longer contain
underscores. A mixfix name is a sequence of unqualified names,
interspersed with "holes", spelled "()". Two adjacent unqualified names
are not allowed in a mixfix name, but multiple adjacent holes are
allowed.
Use underscores for qualified names.

Make intrinsics distinguished by a namespace prefix 'kitten_intrinsic_'
rather than a lexical prefix '__'.

Unfortunately, parentheses are required when using '_' as a prefix to
denote global scope, e.g.:

    foo _bar    // equivalent to 'foo_bar'
    foo (_bar)

TODO: Allow underscore as a suffix, and multiple consecutive underscores
inside a name (i.e., anonymous namespaces), in order to support all C
identifiers. Something also needs to be done about C names like 'foo_2',
which are illegal in Kitten because '2' is not a valid identifier. Maybe
integers could be treated as valid identifiers in nested-names? That
would open up 'foo_0', 'foo_1', &c. to denote the first, second, &c.
lambdas inside a definition. Calling these definitions directly would of
course be disallowed, because they require an activation in order to be
called correctly.
Update syntax highlighting keywords.