Added MinGW Port implementation.

Currently a cleaned up version of the Posix one, but there
will be differences in long double handling.
MinGW: Fixed long double formatting.
Add strto{f, [l]d} to Port; fix strtold for MinGW.
fix Issue 10326 - Change old `invariant` usage to error

deprecation -> error
Allow out-of-source testsuite builds.
Adapt -cov/-profile test to out-of-source builds.
Manually replace ${RESULTS_DIR} for Windows compatibility.
fix issue 10277 - Incorrect error file and line on redeclaration of
TypeInfo
Clean up help text string and enable -m64 for windows
Work around multiple-static-variable bug in dmd by removing the array
Mangle C++ contructors and destructors correctly
Merge pull request #2160 from 9rnsr/fix10326

Issue 10326 - Change old `invariant` usage to error
Add assert to detect missing EXP_CANT_INTERPERT initialization.

It is rather difficult to debug, as the pointer is never
actually dereferenced.
Merge pull request #2184 from klickverbot/interpret-errorexp-assert

Add assert to detect missing EXP_CANT_INTERPERT initialization.
Merge pull request #2086 from klickverbot/port-mingw

MinGW support in Port
lazily evaluate ident
Merge pull request #1152 from klickverbot/out-of-source

Allow out-of-source testsuite builds.
Fixes Issue 10367 - DDoc should output enum base types.
Merge pull request #2187 from WalterBright/lazyIdent2

Generate ident's for TemplateInstance's lazily
Merge pull request #2185 from AndrejMitrovic/Fix10367

Issue 10367 - DDoc should output enum base types.