[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.
Hmm. I've removed casts and tests have been passed. I can't remember, why I added them. =/

I can't remove `@trusted`, because `void[] key_slice = *cast(void[]*)&keys;` is unsafe. (It's part of old AA API)