Fix assertThrows, and the behaviors that it shadowed

The test in StdNamesTest was introduced in cff8b569, where newTermName
would throw on a negative length. In b090f97 this was changed to fix
the negative length, but the test was not adapted (as it didn't fail).
-Ystatistics accepts a list of phases, cleanups in MultiChoiceSetting

MultiChoiceSetting and Xlint with its deprecated aliases is now a bit
simpler, but there's still room for improvement, as noted in comments.
Use Enumeration for MultiChoiceSetting

This is pretty easy, since a ValueSet is a BitSet.

When the setting is updated, recompute the current
set of values, which is cheap and succinct.

Checking a flag is also easy and fast.

Choices in MultiChoiceSettings may enable other choices.
Address PR feedback, fix MultiChoiceSetting.contains
Make MultiChoiceSetting.compute easier to understand
Merge pull request #3939 from lrytz/ystats

-Ystatistics accepts a list of phases for which to print stats
SI-8398 - Compiler specifies lazy variables as methods