Separate out MinGW Port implementation.

This explicit style is generally preferred in DMD for platform-
specific code, and makes sense here as long doubles are tricky
on MinGW.
Remove unnecessary #undefs in Port header.

The Port function names are actually camel-cased and
as such do not collide with the math macros, and undefining
the names in the header is just annoying on platforms where
you want to use the system macros in the implementation.
MinGW: Use actually working strtold.

Like their whole runtime in general, the MSVC version does
not handle 80 bit reals/long doubles.
MinGW: Fixed long double formatting.
Merged in MinGW port updates.

This has been submitted to upstream DMD as GitHub pull
request #2086, but didn't make it in time for 2.063.
Merge tag 'v0.11.0-beta1' into release-0.11.0

The merge of the MinGW Port updates accidentally didn't make
it into the GitHub version of the release branch, even though
the tag was correct.
Removed dead global initializer code.
Removed TODO-riddled DtoInitializer only used in DtoVarDeclaration.
Refactoring-only part of DtoConstExpInit fix.
Be more lenient with initializer type mismatch; zext as necessary.

The integer initializer width mismatch issue should really be
fixed in the frontend, but is related to forward referencing
and thus hard to track down.

Also fixes an unlisted regression since the 2.061 merge, where
there would be a const(char*) vs. immutable(char*) mismatch
reported for some string constants.

GitHub: Fixes #378.