[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.
Isn't @trusted a potential safety hole here if any of the argument types define a custom opCast?