Add StructInitializer::fill to improve overlapped initializing check

- Right now `StructInitializer::semantic` retuens `ExpInitializer` with `StructLiteralExp`.
Update VarDeclaration::init by init->semantic result

The returned `Initializer` object may be different from `init`.
isEntirelyVoid should also work for StructLiteralExp
Fix TypeSArray::defaultInit for void static array type

Same as `TypeSArray::defaultInitLiteral`.
Right now StructInitializer::toDt is never called
Update StructLiteralExp::toDt for static array type field

StructLiteralExp::elements may hold the literal of the bottom type of static array field type.

struct S { int[4] sa; }   S s = S(1);
// (*sle->elements)[0]->op == TOKint64

This change is necessary to accommodate the case.
Update StructDeclaration::toDt

By using `StructInitializer::fill`, it could delegate the operation to `StructLiteralExp::toDt`.
Remove unused variables in StructInitializer
fix Issue 7727 - "static initializer" for non-static unions too
fix Issue 11132 - Odd diagnostic with C-style struct initializer when union field is present
fix Issue 11151 - Undetected overlapping initialization
fix Issue 8360 - Destruction of uninitialized temporary struct with assert
fix Issue 8361 - [ICE] (eh.c line 316) with struct with dtor in assert
fix Issue 7806 - ICE(gloop.c) iterating with idouble, when compiling with -O
refactor duplicate code from elem_print
Update to vs2010; Add postbuild events to auto copy exes to windows/bin
fix Issue 7524 - #line __LINE__ doesn't parse on D2.020 and later
Merge pull request #2620 from 9rnsr/fix8360

Issue 8360 & 8361 - Destruction of uninitialized temporary struct with assert
Merge pull request #2605 from 9rnsr/fix7727

Issue 7727 - "static initializer" for non-static unions too
Merge pull request #2627 from WalterBright/fix7806

fix Issue 7806 - ICE(gloop.c) iterating with idouble, when compiling wit...