https://cplusplus.github.io/LWG/issue3422
Also add a static_assert to check the "Mandates:" on the
iterator-pair constructor. Oddly, the InputIterator parameter
itself is merely preconditioned, not constrained, to satisfy the
input iterator requirements.
Also drive-by rename init to __init.
Are we already testing this noexcept-ness? If not, please add a simple test for that.