Rename several internal templates to get rid of ___ (triple underscores) or worse, four. No functionality change.

llvm-svn: 198608
diff --git a/libcxx/include/__functional_base b/libcxx/include/__functional_base
index 1c337d8..6766793 100644
--- a/libcxx/include/__functional_base
+++ b/libcxx/include/__functional_base
@@ -451,10 +451,10 @@
           }
 };
 
-template <class _Tp> struct ____is_reference_wrapper : public false_type {};
-template <class _Tp> struct ____is_reference_wrapper<reference_wrapper<_Tp> > : public true_type {};
+template <class _Tp> struct __is_reference_wrapper_impl : public false_type {};
+template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {};
 template <class _Tp> struct __is_reference_wrapper
-    : public ____is_reference_wrapper<typename remove_cv<_Tp>::type> {};
+    : public __is_reference_wrapper_impl<typename remove_cv<_Tp>::type> {};
 
 template <class _Tp>
 inline _LIBCPP_INLINE_VISIBILITY