support for templated AAs

- call templated aaLiteral!(Key, Value)(Key[], Value[])
  to create array literals

- pass pointer to aaLiteral!(Key, Value) function to
  _aaGetZ (because it might have to initialize a null AA).
It may be harder than you write. Semantic scope may be speculative (type declared in non-root scope or inside `__traits(compile)` or something else). You will create a template instance which will not written to object file, but somewhere later type will be declared in normal scope, but semantic will not redone. Thus we will get a unresolved reference to aaLiteral. There may be another pitfalls (I touched them and done it as I done).