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.