Moved DiagnosticFactories about reified to

``Type parameter declarations'' block
Supported nested reified parameter declarations

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