Adds
- __add_lvalue_reference
- __add_pointer
- __add_rvalue_reference
- __decay
- __make_signed
- __make_unsigned
- __remove_all_extents
- __remove_extent
- __remove_const
- __remove_volatile
- __remove_cv
- __remove_pointer
- __remove_reference
- __remove_cvref
These are all compiler built-in equivalents of the unary type traits
found in [[meta.trans]][1]. The compiler already has all of the
information it needs to answer these transformations, so we can skip
needing to make partial specialisations in standard library
implementations (we already do this for a lot of the query traits). This
will hopefully improve compile times, as we won't need use as much
memory in such a base part of the standard library.
[1]: http://wg21.link/meta.trans
Co-authored-by: zoecarver
Doc comments would be handy here because this is a pretty recent term of art.