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

Currently you're not instantiating the literal for this.
```d
Value[Key] aa;
```
Which gets translated to this.
```d
Value[Key] aa = null;
```
This is a little problematic when such a declaration is in a library. The compiler might decide not to reinstantiate that template, even though the actual point of use is only on the client side.