This is information that the compiler already has, and should be exposed
so that the library doesn't need to reimplement the exact same
Unlike their default-constructible cousins, the move-constructible
traits can't be implemented using __is_constructible, etc., because we
can't form references to void, and references are a fundamental part
of move constructors.
This was originally a part of D116280.
Depends on D135239.