Fixes for LWG 2598, 2686, 2739, 2742, 2747, and 2759, which were adopted last week in Issaquah

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@286858 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/string_view b/include/string_view
index baba464..60c0ad0 100644
--- a/include/string_view
+++ b/include/string_view
@@ -164,7 +164,6 @@
 #include <__config>
 
 #include <__string>
-#include <algorithm>
 #include <iterator>
 #include <__debug>
 
@@ -320,8 +319,8 @@
 	{
 		if (__pos > size())
 			__throw_out_of_range("string_view::copy");
-		size_type __rlen = _VSTD::min( __n, size() - __pos );
-		copy_n(begin() + __pos, __rlen, __s );
+		size_type __rlen = _VSTD::min(__n, size() - __pos);
+		_Traits::copy(__s, data() + __pos, __rlen);
 		return __rlen;
 	}