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

@MartinNowak I've removed struct-level isCopyConstructable!Value checks (I moved them inside functions). Now only methods and one field (`Impl*`) are placed at `AssociativeArray` However, the error is still.
When I try to compile any phobos module for unittest, I get a segfault (if `Test5` in `core.internal.aa` is not commented.)
The compile command: `/usr/bin/dmd -I../druntime/import -unittest -c -ofgenerated/linux/release/64/unittest/std/algorithm.o std/algorithm.d`
The stacktrace:
```
Program received signal SIGSEGV, Segmentation fault.
0x0000000000432e97 in OptimizeVisitor::visit (this=0x7fffffffd090, e=0x89ef9e0) at optimize.c:491
491                     Type *t1 = e->e1->type->toBasetype();
Missing separate debuginfos, use: debuginfo-install dmd-2.063.2-0.x86_64
(gdb) bt
#0  0x0000000000432e97 in OptimizeVisitor::visit (this=0x7fffffffd090, e=0x89ef9e0) at optimize.c:491
#1  0x0000000000534eba in CallExp::accept (this=0x89ef9e0, v=0x7fffffffd090) at expression.h:925
#2  0x0000000000436c42 in Expression_optimize (e=0x89ef9e0, result=2, keepLvalue=false) at optimize.c:1264
#3  0x000000000042a09d in Expression::optimize (this=0x89ef9e0, result=2, keepLvalue=false)
    at expression.h:208
#4  0x0000000000596330 in InitToDt::visit (this=0x7fffffffd130, ei=0x89efa30) at todt.c:187
#5  0x000000000054fd62 in ExpInitializer::accept (this=0x89efa30, v=0x7fffffffd130) at init.h:141
#6  0x000000000059638b in Initializer_toDt (init=0x89efa30) at todt.c:193
#7  0x0000000000585db2 in VarDeclaration::toObjFile (this=0x89efa60, multiobj=false) at toobj.c:951
#8  0x0000000000586402 in AttribDeclaration::toObjFile (this=0x89fb280, multiobj=false) at toobj.c:1094
#9  0x0000000000585b06 in StructDeclaration::toObjFile (this=0x89c07d0, multiobj=false) at toobj.c:885
#10 0x00000000005866d6 in TemplateInstance::toObjFile (this=0x899d8b0, multiobj=false) at toobj.c:1168
#11 0x000000000056ae53 in Module::genobjfile (this=0x7ffff7ed0520, multiobj=false) at glue.c:383
#12 0x00000000004063cb in tryMain (argc=12, argv=0x921230) at mars.c:1700
#13 0x00000000004066d2 in main (argc=6, argv=0x7fffffffd8d8) at mars.c:1761
```
Have you any ideas about it?