SI-8474  Inconsistent behavior of patch method

Changed Iterator to be consistent with other collections.

Also fixed SeqViewLike to validate/constrain inputs.

No specific tests; quasi-comprehensive collection tests will cover this later.
SI-5254 running an empty scala script should succeed

The script runner made the assumption that "compilation succeeded"
implies "there is a Main class to run", but this can be wrong if the
script is empty (or only contains imports/comments).

The ScriptRunner now uses the ClassPath utility to check if there really
is a main class. If not, it doesn't try to run it and returns
peacefully. This also makes `scala -e ''` succeed.
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.
Fix broken URL for MathJAX Javascript dependency.

Loaded using an DNS alias for the CDN, as per the
[instructions](http://docs.mathjax.org/en/latest/configuration.html)

I also switched from `latest` to `2.3-latest`, so that we don't
automatically perform major upgrades.
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
Merge pull request #3801 from Ichoran/issue/8474

SI-8474  Inconsistent behavior of patch method
Merge pull request #3946 from gourlaysama/wip/t5254

SI-5254 running an empty scala script should succeed
Merge pull request #3967 from retronym/topic/mathjax

Fix broken URL for MathJAX Javascript dependency.
[nomaster] SI-8764 fix return type of case class productElement under Xexperimental

Under Xexperimental, productElement now returns the lub instead
of the weak lub of case class parameter types (numeric widening
shouldn't magically happen *inside* productElement).

This was removed from 2.12.x in 6317ae2.
Merge pull request #3938 from gourlaysama/wip/t8764

SI-8764 fix return type of case class productElement under Xexperimental