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

```
        struct Test5
        {
            this(int a)
            {
                this.a = a;
            }

            size_t toHash() const @safe nothrow pure
            {
                return hashOf(a);
            }

            bool opEquals(const Test5 rhs) const @safe nothrow pure
            {
                return a == rhs.a;
            }

            int a;
            AssociativeArray!(Test5, string) aarr1;
            AssociativeArray!(string, Test5) aarr2;
        }

        int test5()
        {
            Test5 f;
            f.aarr1[Test5(1)] = "yyy";
            f.aarr2["xxx"] = Test5(2);
            assert(f.aarr1[Test5(1)] == "yyy");
            assert(f.aarr2["xxx"] == Test5(2));

            return 0;
        }
```

This test is passed when you simply run it. However when I added it to `core.internal.aa` unittest, it caused segfault during phobos test compiling. (`core.internal.aa` test has been successfully passed). However I've removed `isLhsValueConst`-like tests. There one struct-level check still exists: 
```
    static if (isCopyConstructable!Value)
    {

        Value[] values() @property
        {
            ...
        }

        const(Value)[] values() const @property
        {
            ...
        }

        inout(Value)[] inout_values() inout @property
        {
            ...
        }
    }
    else
    {
        @disable Value[] values() @property;
        @disable const(Value)[] values() const @property;
        @disable inout(Value)[] inout_values() inout @property;
    }
```
However this check was succusfully work in old `object.AssociativeArray`, which was instantiated inside `TypeAArray::semantic()`.