The problem with debug mode tests is that it isn't known which particular
_LIBCPP_ASSERT causes the test to exit, and as shown by
https://reviews.llvm.org/D100029 and 2908eb20ba7 it might be not the
expected one.
This patch implements the appriach suggested by @Quuxplusone in D100029
that allows us to cautch only those _LIBCPP_ASSERTs that are going to be
tested; all others will produce an error.
@krisb: D100866 has landed. Either you or I should make a separate PR for adding these tests as regular-mode tests. (I'm happy to do it. I should probably just do it.) I'd like to do that before landing this one, so that this one can be smaller.