Moved DiagnosticFactories about reified to

``Type parameter declarations'' block
Minor, removed redundant argument

from ClassBodyCodegen.generateDeclaration
Got rid of hack with stashing wereReified

1. Made ClosureCodegen extending MemberCodegen
2. Made ClosureContext extending ClassContext
Wrap parentCodegen before generating from inline
Supported nested reified parameter declarations

Also switched to using type names as identifiers instead of their
indices