[new AA] implement aaLiteral

This functions will be used to constructing AA values: literals and nulls. When this PR will be merged, I will create PR for dmd, which uses this functions, and when dmd PR will be merged, I'll create PR, which rewrite this functions to use new AA implementation.
Even better, let's copy `std.typecons.staticIota` somewhere to `core.internal` and use it instead.
```d
foreach (i, staticIota!(0, args.length / 2))
{
    keys[i] = cast(Key)args[2 * i];
    values[i] = cast(Value)args[2 * i + 1];
}
```