[c++20] P1907R1: Support for generalized non-type template arguments of scalar type.
Previously committed as 9e08e51a, and
reverted because a dependency commit was reverted. This incorporates the
following follow-on commits that were also reverted:
7e84aa1b by Simon Pilgrim
ed13d8c6 by me
95c7b6ca by Sam McCall
430d5d84 by Dave Zarzycki