EXPERIMENTAL uniqueness types

Added a universe, UniqueType - any variable of this type can only be
referred to once. This guarantees they will not be shared, so can safely
be destructively updated (though this is not implemented by this patch).
Make top level type 'Type*'

UniqueType : Type 1
Type : Type 1

Type* indicates that either UniqueType or Type is allowed (which means
uniqueness must be preserved in the definition)
Check constructor kinds for uniqueness errors
Cache uniqueness information in NameType

This'll help build destructive case trees
Mark 'case' on unique types as updatable
Propagate CaseType through IRs
Propagate constructor updates to bytecode

(Not yet searching for which variables are safe to update in place
though)
Do some inlining in Lang IR

In particular, inline 'case' blocks
Inline with blocks
Find updatable constructors after destructive case
Don't keep allocating nullary constructors