SpecificationVisitor: allow metamodel access even to uninitialised values
Declaration: add qualifier for local types

So two local types of the same name but different scope are not equal
Add LocalDeclarationVisitor to set all local declaration qualifiers
Declaration: consider the container in hashCode()

otherwise two local declarations with same name but different scope will collide
Declaration: make sure setter/getter and value/anonymous type have different hashes

otherwise they collide
Declaration: consider the qualifier in hashCode/equals
Setter: prefixed name needs a setter prefix to differenciate them from getter
TypeParameter: allow capture

Needed by backend to generate unique names for captured method reified type parameters
ProducedTypeNamePrinter: added option to print names qualified and prefixed
ProducedType: deal with qualified local declarations
Interface: added javaCompanionClassName attribute for JVM compilation

We need to set this in a new backend visitor.
Merge pull request #955 from FroMage/local-declarations

Support for local declarations in metamodel