Implement a small subset of the C++ `type_traits` header inside sanitizer_common so we can avoid depending on system C++ headers.

Summary:
In particular we implement the `is_same<T,U>` templated type. This is
useful for doing compile-time comparison of types in `static_assert`s.
The plan is to use this in another patch (
https://reviews.llvm.org/D54904 ).

Reviewers: kcc, dvyukov, vitalybuka, cryptoad, eugenis, kubamracek, george.karpenkov

Subscribers: mgorny, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D54951

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