[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.
`aaNew` in new AA implementation allocates an empty AA instance. When user do code like next...
```
int[int] aa; //AA initialized with null
aa[1] = 2; //called `_aaGetX`
```
`_aaGetX` doesn't know an real AA type, and can't access to a `AssociativeArray.handle`, because `aa` is null yet. For this case compiler passes to `_aaGetX` a special function: `aaNew`, which allocates an empty array. See #934:1244

In old AA implementation `aaNew` is holder and will not be used.
For more information see D-Programming-Language/dmd#3904 description

```