[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
Fix signed/unsigned warnings related to 'global.errors'
Fix signed/unsigned warnings in for-loops
Fix unused warnings for DMD_OBJS

All warnings reported by -Wunused fix by either removing code or putting
it within the if-ifdef scope the variable was used.
Fix warnings for DMD_OBJS occurring with ENABLE_WARNINGS=1

Almost all warnings fixed with the current list of -W-directives turned
on when using ENABLE_WARNINGS=1. Disabled warnings for unhandled switch
values in src/posix.mak (-Wno-switch).