A test-case demonstrating the problem with github issue #115.

Currently failing so I've put this onto a branch of its own.
Move issue #115 test-case to much earlier in the build sequence.
Simplify the issue #115 test-case.

The problem arises in the standard kernel (only) when a term has a
bound variable of name n with scope over a different variable of the
same name (i.e., there is a free variable of the same name but a
different type under the binder).

Fundamentally, the issue is that the standard kernel’s dest_abs
necessarily traverses the body of a term in order to turn indexes into
free vars. In the process it detects if it is about to create a term
with free variables of same names and different types. In that
situation it renames the bound variable and repeats. Perhaps this is a
mis-design.
Extend kernel API with new all_atoms entrypoint.

Use this in theory pretty-printing routine to deal with issue #115.

Closes #115.
Merge in fix for issue #115.