Capability to get children compile-time info.

This commit adds a feature of compile-time introspection of aggregate types' "children".
E.g.
```d
struct MyCustomInfo(T)
{
    static this()
    {
        writeln("Registering runtime info for ", T.stringof);
    }
}

@rtInfo!MyCustomInfo class RootOfSomeRuntimeRegisteringHierarchy
{
}

class A : RootOfSomeRuntimeRegisteringHierarchy
{
}
```

Will output:
```
Registering runtime info for RootOfSomeRuntimeRegisteringHierarchy
Registering runtime info for A
```
This will need some documentation if going to be merged. I'll write it as soon as all other questions are settled.
Use `core.internal.traits.TypeTuple` instead.