[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.
Nope. `aaLiteral!(Key, Value)()` should return `null` (`Value[Key].init`).
`aaNew` should allocate memory and create empty but non-null array.