[Refactoring] Tweak AssignExp::toElem

Separate code blocks for Tstruct and Tsarray.
Preparation front-end bug fixes which are hidden by glue-layer codegen

1. `VarDeclaration::semantic` in src/declaration.c
  Use TOKblit, because default construction should not invoke postblits.

2. `expandInline` in src/inline.c
  Postblit call on non-ref parameters is already handled by callCpCtor in
  front-end. So argument passing on expanded functions should use TOKblit.
Stop "used before set" error for zero-size variable
fix Issue 12212 - Static array assignment makes slice implicitly

Do not make implicit slicing in front-end, then support proper codegen for
`(sarray = sarray)` assignment and construction in glue-layer.
[Refactoring] AssignExp::semantic
Merge pull request #3467 from 9rnsr/fix12212

Issue 12212 - Static array assignment makes slice implicitly