Make Initializer::syntaxCopy, semantic, and inferType abstract

For more verbose error message and future enhancement.
Fix the position of Initializer::inferType member function
Change int to bool
+add comment
+add comment inferType
Rely on inferType with `S s = aa-initializer;`
+test1
rename init to iz
+test2
++// WIP
+test2
+test3 stop toAssocArrayLiteral
Now ArrayInitializer::semantic does not return itself

And ArrayInitializer::toExpression is unreachable (maybe)