Reapply "[asan] Poor man's coverage that works with ASan"

I was able to successfully run a bootstrapped LTO build of clang with
r194701, so this change does not seem to be the cause of our failing
buildbots.
Reapply asan coverage changes 194702-194704.

I still don't know what is causing our bootstrapped LTO buildbots to fail,
but llvm r194701 seems to be OK and I can't imagine that these changes could
cause the problem.
[PECOFF] Minimum size of DOS stub is 64 byte.
Use instr mapping for microMIPS in llvm-mc.
Fix Windows buildbot on which size_t is not unsinged long.
Adding some info about stability of ARM boards

Patch by Mikael Lyngvig
Tests for core issue 216-223.
Don't build unsupported compiler-rt pieces on Windows
Give unit test its own LLVMContext so MDNodes aren't leaked even if we never call llvm_shutdown.

Found by valgrind.
Redirect unused test case output to /dev/null
llvm-cov: Clean up memory leaks.
[asan] use GlobalValue::PrivateLinkage for coverage guard to save quite a bit of code size
Move all of the GoogleTest files back to the same locations they occupy
externally to simplify our integration of GoogleTest into LLVM. Also,
build the single source file gtest-all.cc instead of the individual
source files as we don't expect these to change and thus gain nothing
from increased incrementality in compiles.

This makes our standard build of googletest exactly like upstream's
recommended build and the sanitizer's build. It also simplifies the
steps of importing a new version should we ever want one.
LLVM's GoogleTest copy has moved its source code back to the default
location, update this reference to reflect that.
tsan: add proper cfi directives to assembly code
this allows gdb to unwind through our hacky call
Remove the hardcoded declaration to the Python include path. Thanks to Kal Conley for the patch
[Sanitizer] Make slow unwinder on Linux more robust
[mips][msa] Build all the tests in little and big endian modes and correct an incorrect test.

Summary:
This patch (correctly) breaks some MSA tests by exposing the cases when
SelectionDAG::getConstant() produces illegal types. These have been temporarily
marked XFAIL and the XFAIL flag will be removed when
SelectionDAG::getConstant() is fixed.

There are three categories of failure:
* Immediate instructions are not selected in one endian mode.
* Immediates used in ldi.[bhwd] must be different according to endianness.
  (this only affects cases where the 'wrong' ldi is used to load the correct
   bitpattern. E.g. (bitcast:v2i64 (build_vector:v4i32 ...)))
* Non-immediate instructions that rely on immediates affected by the
  previous two categories as part of their match pattern.
  For example, the bset match pattern is the vector equivalent of
  'ws | (1 << wt)'.

One test needed correcting to expect different output depending on whether big
or little endian was in use. This test was
test/CodeGen/Mips/msa/basic_operations.ll and experiences the second category
of failure shown above. The little endian version of this test is named
basic_operations_little.ll and will be merged back into basic_operations.ll in
a follow up commit now that FileCheck supports multiple check prefixes.

Reviewers: bkramer, jacksprat, dsanders

Reviewed By: dsanders

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1972
Always add core checkers if static analyzer checks are enabled.

In response to post-commit feedback by Jordan, this is required to
make sure path-sensitive checks work correctly.
Correct spelling.