Run externalisation by default.
Revert "Run externalisation by default."

This reverts commit 6c2c74bc0cc119d480d31183f2236518351281b5.

This is not useful yet.
Reduce the number of alternatives for 'size' expressions in rebinder.

This is actually a workaround to deal with programs like this:

    fun {int} main(*[int] a_0) =
      let {val_3} = 1 in
      let letwith_dst_4 = a_0 with [|0] <- val_3 in
      // c_1 aliases letwith_dst_4
      let {c_1} = letwith_dst_4 in
      let {x_2} = size(0, c_1) in
      {x_2}

In this case, 'size(0,c_1)' can alternatively be written as
'size(0,a_0)'.  Note that a_0 is consumed by the let-with.  The
rebinder, conservative machine that it is, will thus reason that the
size-binding must precede the let-with.  BUT, the binding of c_1 must
of course also precede the size-expression!  This creates a conflict.

The central issue, of course, is that we order bindings before
resolving alternative expressions.  Maybe we need to reconsider the
whole handling.
Remove renamer as a compiler pass.

It is now a type error to have name shadowing, so it will never make a
difference anyway.  Compiler passes that generate non-unique names can
run it on their own.
Remove aliasing to automatically generated variables in type checker.
Make bounds check certificates mandatory for let-with and index.
Remove unneeded pattern name.
Merge the two certificates fields of index and let-with expressions.

This distinction makes sense in external L0, but not internally.  This
simplifies the code slightly.
Add really nasty test case (currently fails).
Add certificates to Result.
Some more work on size analysis, but unfinished.

I need to talk to Cosmin about this.
Remove some clunky uses of arrayOf function.
Remove unneeded LANGUAGE pragmas.
I got a great new idea!
More work on accurate size tracking.

I think the current approach is going to be final, but it's still not
finish.  I'd also like to integrate it with internalisation.
A filter function must never consume its arguments.

This just adds some more checks to the type checker.
Add filter-error test.
More work on accurate size tracking.

Still a few unclear things, and the code is a little gnarly.  But it
seems to work.
Run externalisation by default.
Revert "Run externalisation by default."

This reverts commit 6c2c74bc0cc119d480d31183f2236518351281b5.

This is not useful yet.