allow casting Typedef to another Typedef

Now when I tries to cast from `Typedef!(Foo)` to `Typedef!(const(Foo))` I get a `e2ir` error.
Moreover, when I have a `alias TD = Typedef(Foo)`, I can't cast `const(TD)` to `TD`.
This PR fixes this issue.
Symbols introduced in `is`-expressions in template constraints are not available in the body of the template, unfortunately.

However, it can be written like this:
```d
T2 opCast(T2 : Typedef!(T, Unused), T, Unused...)()
{
    return T2(cast(T)Typedef_payload);
}
```