[1] Prepare libc++ for MSVC2013

- Add basic cl support to lit.cfg
- Adjusted <__config> for MSVC
- Replaced __value with __val, __out with __out_it (reserved names MSVC uses)
- Added some ()s in <tuple>, otherwise MSVC interprets an end-of-file (?!)
- Avoid redefinitions of MSVCRT functionality included in 2013
- Added missing visibility attributes
- Enabled C++11 tests, except for unicode literals and custom allocator for basic_string (requires relaxed unions)
- Replaced illegal 0-size arrays in tests
- Make sure <__config> was included before using macros that it defines
[2] TypeTraits for MSVC

- Added intrinsics for MSVC 2012, 2013 and 14CTP3
- Refactored __invoke, moved SFINAE to the result type
[3] Tuple for MSVC

- Add fallback for missing =default support (tricky with T&& elements)
- Split overloads with empty parameter packs, MSVC has trouble expanding those
- Disable conditionally explicit constructors, MSVC can't handle those SFINAE overloads
- Mark empty_member test as expected failure, MSVC does not do multiple EBO
[4] Functional for MSVC

- Refactor the nested __callable, MSVC ICEs on it
- Workaround SFINAE bug by making nested types public
[1] Adjust lit to correctly detect compilation failures from MSVC