Fix for name clashes when applying transformations

Fixes #1684, and most likely a lot of other partial evaluation problems.
IBC version updated since the problem may show up in any library code
that's currently built.
Check for cycles in unification results

Fixes #1754.
Remove Type* on type of (.)

We should leave this sort of thing until uniqueness types are more
mature and we've experimented more outside the Prelude.
Fixes #1777
Move Pair/Sigma into Builtins namespace

Fixes #1775 (but there is still a related problem to address too,
being #1776)
Check datatypes are not redefined

We were checking, but only seeing if the type constructor was the same,
which is not enough. Fixes #1776.
Add proper namespace to class instances

Fixes #1779