[libc++][format] Use forwarding references.

This implements a not accepted LWG issue. Not doing so would require
integral types to use the handle class instead of being directly stored
in the basic_format_arg.

The previous code used `std::forward` in places where it wasn't required
by the Standard. These are now removed.

Implements:
- P2418R2 Add support for std::generator-like types to std::format
- LWG 3631 basic_format_arg(T&&) should use remove_cvref_t<T> throughout

Reviewed By: ldionne, #libc

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

NOKEYCHECK=True
GitOrigin-RevId: 606e280811f2e17dd3561968139873857dc0a6f8
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index c6eb835..b564017 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -47,6 +47,7 @@
 - N4190 (Removing auto_ptr, random_shuffle(), And Old <functional> Stuff)
 - P0154R1 (Hardware inference size)
 - P0618R0 (Deprecating <codecvt>)
+- P2418R2 (Add support for ``std::generator``-like types to ``std::format``)
 
 - Marked the following papers as "Complete" (note that some of those might have
   been implemented in a previous release but not marked as such):
@@ -84,6 +85,9 @@
   of throwing an exception at run-time.  (This does not affect the ``v``
   functions.)
 
+- All format functions in ``<format>`` allow the usage of non-copyable types as
+  argument for the formatting functions. This change causes bit fields to become
+  invalid arguments for the formatting functions.
 
 API Changes
 -----------