Re-implement hasIndirections

It avoids requesting the `RepresentationTypeTuple` of T unless really needed (only for structs and unions, but not for classes, for example). Overall, instantiates *much* less templates for the same result, and re-uses `hasIndirections`, rather than an internal `Impl`.

Partially solves 12000:
https://d.puremagic.com/issues/show_bug.cgi?id=12000

Fix Issue 12000 - Forward reference issue with RefCounted