[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)

I don't understand why is it a forward reference. `AssociativeArrayHandle` doesn't depend on anything. I've placed...
```
struct AARange
{
    void* impl;
    void* current;
}

private struct AssociativeArrayHandle
{
    @trusted pure nothrow size_t function(in void* aa) len;
    @trusted        void* function(void** aa, in void* pkey) getZ;
    @trusted        inout(void)* function(inout void* aa, in void* pkey) getRvalueX;
    @trusted        bool function(void* aa, in void* pkey) delX;
                           int function(void* aa, dg_t dg) apply;
                           int function(void* aa, dg2_t dg) apply2;
    @trusted        int function(in void* e1, in void* e2) equal;

    inout(void)[] function(inout void* p) values;
    inout(void)[] function(inout void* p) keys;
    pure nothrow void* function(void** pp) rehash;
    void* function(void* pp) dup;
    @nogc pure nothrow AARange function(void* aa)  range;
    @nogc pure nothrow bool function(AARange r) rangeEmpty;
    @nogc pure nothrow void* function(AARange r) rangeFrontKey;
    @nogc pure nothrow void* function(AARange r) rangeFrontValue;
    @nogc pure nothrow void function(ref AARange r) rangePopFront;
    size_t function(in void* aa) getHash;
}
```
at top of file, but error still exists. And this error is happens if a new test is added to unittest.