[new AA] aaLiteral compiler support

This is a dmd part of the new AA implementation. 
This PR depends on D-Programming-Language/druntime#1046 and uses new aaLiteral version (with arrays of keys and arguments)

>Ok I guess forward reference isn't exactly the right term. IIUC you're building an expression something like handle.len(cast(void*)aa), but you're not running semantic on it and you're not filling in the type field manually. So it crashes, because the type must be set on all the ast nodes before calling optimize.

>So you'll need to either set the type manually, or run semantic and let it figure it out. Which one is best depends on where/when you're constructing the expression.

I don't build any expressions manually. All those expressions are wrapped to API functions like
```
    size_t _aaLen(in AssociativeArrayHandle** aa) @trusted pure nothrow
    {
        if (!aa)
            return 0;
        auto handle = *aa;
        return handle.len(aa);
    }
```
All I do in this PR is a creating `aaLiteral` instance in some places.