Support for local declarations in metamodel

These are all changes required to support local types in the metamodel:

- I need to be able to refer to local declarations by name, and since they can have the same name in different local scopes I assign them a `qualifier`
- I need to be able to remember the Java class name of interface companion classes
- I need to be able to mark (method) `TypeParameter` as captured
- I extended `ProducedTypeNamePrinter` to let me print qualified local declarations with their prefixes.

Let me know if you have any questions. I have a further 50 commits in compiler and language waiting for your OK. I will merge it manually along with the other projects when you give the OK.

Do note that I tried to keep all these changes to a minimum on the model side.