Expose list of free variables and their types.

This gets used for printing out the context.
Fix printing (but not yet bound variables)

Printing compiles, but will print bare de Bruijn indices.
Minor improvements
Dummy implementation of occurs

No harm is done, just products will never appear
as arrows.
New implementation of instantiate