Compiles namespaces with polymorphic type declarations

Namespaces can now contain and compile any ITypeDeclarations (not just
ValueTypeDeclarations)