fix Issue 9538 - Regression (2.062): Can't use typeid on .ptr of static array
fundamental fix for resolveHelper
Allow using S1.init.T!int as a type

struct S1 { template T(X) { alias T = X; } }
void main() {
    auto ti = typeid(S1.init.T!int);
    assert(ti == typeid(int));
    S1.init.T!int x;
}
Support stringof and moduleof with import/package/module

module test;    // or `test.mod;`

void foo() {}

template Test(string name) { enum Test = name; }
pragma(msg, Test!(foo.stringof));   // ??, "void()" -> "foo()"
pragma(msg, foo.stringof);          // OK, "foo()"
pragma(msg, Test!(test.stringof));  // NG
pragma(msg, test.stringof);         // OK, "module test"

pragma(msg, Test!(foo.mangleof));   // ??, "FZv"
pragma(msg, foo.mangleof);          // OK, "_D4test3fooFZv"
pragma(msg, Test!(test.mangleof));  // NG
pragma(msg, test.mangleof);         // OK, "4test"