fix Issue 8373 - IFTI fails on overloading of function vs non function template
[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
fix Issue 12591 - std/typecons.d(440): Error: tuple has no effect in expression
Merge pull request #3467 from 9rnsr/fix12212

Issue 12212 - Static array assignment makes slice implicitly
Fix Issue 12598 - Emit better diagnostics when type is found where an lvalue was expected.
Merge pull request #3459 from 9rnsr/fix8373

Issue 8373 - IFTI fails on overloading of function vs non function template
Merge pull request #3468 from 9rnsr/fix12591

[REG2.064] Issue 12591 - std/typecons.d(440): Error: tuple has no effect in expression
Merge pull request #3470 from AndrejMitrovic/Fix12598

Issue 12598 - Emit better diagnostics when type is found where an lvalue was expected