[libc++] Deprecate std::iterator and remove it as a base class

C++17 deprecated std::iterator and removed it as a base class for all
iterator adaptors. We implement that change, but we still provide a way
to inherit from std::iterator in the few cases where doing otherwise
would be an ABI break.

Supersedes D101729 and the std::iterator base parts of D103101 and D102657.

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

NOKEYCHECK=True
GitOrigin-RevId: 1055cb91b48280da0c42c5287b227cfdaae633b2
diff --git a/include/memory b/include/memory
index 5d53ea5..7c3c92c 100644
--- a/include/memory
+++ b/include/memory
@@ -154,11 +154,7 @@
 
 template <class OutputIterator, class T>
 class raw_storage_iterator
-    : public iterator<output_iterator_tag,
-                      T,                               // purposefully not C++03
-                      ptrdiff_t,                       // purposefully not C++03
-                      T*,                              // purposefully not C++03
-                      raw_storage_iterator&>           // purposefully not C++03
+    : public iterator<output_iterator_tag, void, void, void, void> // until C++17
 {
 public:
     explicit raw_storage_iterator(OutputIterator x);