Re-implement hasIndirections

Avoids requesting the RepresentationTypeTuple of T unless really needed.

Partially solves 12000:
https://d.puremagic.com/issues/show_bug.cgi?id=12000

Fix Issue 12000 - Forward reference issue with RefCounted
safe pure nothrow sort and sum
remove debug statements
Remove useless enforce

It's already asserted
Mark some tests as nothrow
Fix12596 - Implement Typedef ctor that can take itself as the parameter.
Strip spaces.
Scope std.typecons : Tuple imports
@nogc for builtin functions
Fix Issue 11175 - Format should support IUnknown classes.
Fixup wrong example in doFormat.
Fix Issue 12568 - std.functional.memoize does not work with constant
arrays.
Merge pull request #2087 from AndrejMitrovic/Fix12596

Fix12596 - Implement Typedef ctor that can take itself as the parameter.
Merge pull request #2110 from AndrejMitrovic/FixFormat

[Trivial] Fixup wrong example in doFormat.
Update advapi32.d

FreeLibrary was always being called on a null argument.
Fix exception always being thrown.
Merge pull request #2114 from damianday/patch-1

Update advapi32.d
Merge pull request #2105 from WalterBright/add-nogc

@nogc for builtin functions
Fix Issue 12464 - Inject imports to core.vararg on Posix when wrapping C-style variadic functions via AutoImplement.
Strip spaces.
Merge pull request #2094 from AndrejMitrovic/Fix12464

Issue 12464 - Inject imports to core.vararg on Posix when wrapping C-style variadic functions via AutoImplement.