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
Fix LLVM build problem
Merge branch 'master' of github.com:idris-lang/Idris-dev

Conflicts:
	src/IRTS/Bytecode.hs
TMP: Turn off inliner since it breaks JS backend
Disable primitives003 test in LLVM back end

There is apparently a bug which causes it to segfault - I don't know if
this is an llvm bug or an idris llvm code generator bug, but I don't
want this to get in the way of further uniqueness type development.
Merge pull request #1478 from edwinb/uniqueness

Uniqueness types