[sanitizer] Change the way we use certain linux kernel headers.

Some linux headers are broken on older kernels.
Instead of depending on the constants and types from such headers directly,
we provide our own definitions and then verify them with compile-time
assertions. This makes the dependency on the headers test-only and would allow
switching to some other way of testing on older kernels, or even disable the
tests as the last resort (after all, kernel interfaces are supposed to be
stable).


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@195427 91177308-0d34-0410-b5e6-96231b3b80d8