Use DisplayContext for type parameters

Fix #278.
Fix #279.

Now type annotations follow the following rule:
> If there are open statements in scope, they are given short names; otherwise, fully-qualified names are returned.