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

>Well I think, you're seeing those kinds of errors because you're doing very complex things here. The whole forward reference/deferred semantic topic is a very delicate mechanism and we shouldn't mess with it for AA support.

This PR doesn't do any complex things:
1. It constructs aaLiteral only when it needed: (for _aaGetX and for literals, including literals casting)
2. It constructs aaLiteral only it is possible: if Key and Value is not foward reference and if scope is not speculative.
3. If Key or Value is forward ref compiler will not allow to use AA anything because old version needs a typeid for it.
4. Circular dependence of type correctly resolves by compiler: I tested it before removing module-level checks.
5. Discussed issue is not relevant with this PR.