Minor code cleanup.

No functionality change intended.
Factored out tool invocation code into separate file.
Removed useless -quiet switch.
MinGW support in Port.
Also force -fno-rtti on MinGW.
Remove unused variable.
MinGW compilation fixes.
Minor cleanup (avoid forward decl).
Use the system assembler on MinGW.

MC does not support writing out the exception handling tables
to COFF files yet.
Fix MinGW names for naked functions.
DW2 EH for MinGW.
MinGW LLVM compiler flag fixes.

Our CMake code should be rewritten to not expect things as strings
that really aren't, but this would entail a whole lot of cross-
platform testing, so I'm postponing it for now.
Revert "Use CMake-detected make program."

CMAKE_MAKE_PROGRAM isn't always (GNU) make, but refers to the
"make" equivalent of the target generator, for example the
"ninja" executable if the Ninja generator is used.

Using find_program or something similar would probably still
be a good idea.

This reverts commit 5a6176316a5531077b6402970250998a366c0bb6.
Link in ws2_32 by default on MinGW.
Various MinGW runtime fixes.
Small cleanup of gen/pragma.cpp

- Added locations to many error messages
- Fixed indentation
Fix LLVM 3.3 compile errors.
Integrate obj_includelib into its only caller.
Move calling convention conversion into TargetABI.

The code is tightly coupled to TargetABI (the transformations
there only make sense knowing that the right CC is selected).
MinGW: pragma(lib,...) DMD compatibility hacks.