Fix localtype3.mz

Because we now allow local data type _definitions_, we must add the right guards
in [Merge] to make sure we don't try to merge these. (We still do the right
thing with local type abbreviations, though.)
Added a interface/implementation pair for write-once references.
Merge branch 'master' of git+ssh://yquem.inria.fr/~protzenk/public_html/mezzo

Conflicts:
	src/testsuite.ml
"exclusive p" is now correctly rejected when p has kind perm.
quantifier-bug.mz works (has been working for some time).
Removed a useless "ghost" field in the type-checker.
Get rid of one hairy TODO item.
Review of the TODO file.
Comment.
Export [KindCheck]'s debug printer.
Checkpoint.
Urgh.

Re-reading the code several times while being caffeinated allowed me to
understand what I had to do. There's still quite a fair bit of work left (we're
only properly treating value definitions, datacons are not properly handled
yet), but well, I'm on the right path.

This should also allow us to _cleanly_ print the variables exported by a module.
Actually we don't need [clear_unqualified].
Add [bind_external_datacon].
All the bits are in place. Let's start debugging.
Properly register data types.
Works!
Fix the test suite.
And fix the last remaining bug.
Print signatures properly.
Update TODO. Remove useless function.