Revise TypeNode usage in AST nodes (is NamespaceOrTypeNameNode more appropriate?)


The spec makes a distinction between "type" and "type-name". Type can be a simple type-name too, but can also be a constructed type like int*[].
Previously all type and type-name instances were represented by TypeOrNamespaceNode. Then I split it into TypeNode (for "type") and NamespaceOrTypeNameNode (for "namespace-or-type-name" and "type-name").
The former TypeOrNamespaceNode became TypeNode, but not all usages were revised whether it is a legitimate usage of TypeNode (ie. the spec uses "type") or it should be changed to NamespaceOrTypeNameNode (ie. the spec uses "type-name" or "namespace-or-type-name").