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

This whole thing here is to avoid forward reference issues, but it's actually a problem of your AA implementation that it runs into forward reference issues. By adding this code to the compiler you're not breaking the cycle and this will be a constant source for troubles in the future.