Merge 2.11.x to 2.12.x

Skips the tweak to productIterator's type (#3938), as the special case was
subsequently removed in 2.12.x (e01b461).

Otherwise everything was mechanically merged.

```
% export MB=$(git merge-base origin/2.12.x origin/2.11.x)

% git --no-pager log --oneline --graph --decorate $MB..origin/2.11.x
*   1b98061 (origin/2.11.x) Merge pull request #3983 from retronym/merge/2.10.x-2.11.x-20140915
|\
| *   25e9326 (retronym/merge/2.10.x-2.11.x-20140915, origin/pr/3983, merge/2.10.x-2.11.x-20140915) Merge commit '9ecfac8' into merge/2.10.x-2.11.x-20140915
| |\
|/ /
| * 9ecfac8 (origin/2.10.x) Merge pull request #3859 from xeno-by/topic/fundep-materialization-210x
| * 5966a11 (origin/pr/3859) -Xfundep-materialization => -Yfundep-materialization
| * 364c8e9 (xenoby/topic/fundep-materialization-210x) pull request feedback
| * 0c5dd9e [backport] SI-7470 implements fundep materialization
*   7b59154 (2.11.x) Merge pull request #3977 from terma/issue/8817
|\
| * b416dc6 (origin/pr/3977) SI-8817 Correct scaladoc for scala.sys.addShutdownHook
* |   5046f7b Merge pull request #3846 from xeno-by/topic/move-quasiquotes
|\ \
| * | 9ba986e (origin/pr/3846) moves the impl of quasiquotes to scala.reflect
|/ /
* |   7c8eaef Merge pull request #3968 from Feodorov/ticket/8398
|\ \
| * | 24ccfa0 (origin/pr/3968) SI-8398 - unused warning reports lazy val as a method
|/ /
* |   2ac6dc0 Merge pull request #3938 from gourlaysama/wip/t8764
|\ \
| * | e01b461 (origin/pr/3938) [nomaster] SI-8764 fix return type of case class productElement under Xexperimental
|  /
* |   abd595d Merge pull request #3967 from retronym/topic/mathjax
|\ \
| * | 8e531d3 (retronym/topic/mathjax, origin/pr/3967) Fix broken URL for MathJAX Javascript dependency.
| |/
* |   8082d38 Merge pull request #3946 from gourlaysama/wip/t5254
|\ \
| * | 9519eb0 (origin/pr/3946) SI-5254 running an empty scala script should succeed
|  /
* |   0729b29 Merge pull request #3801 from Ichoran/issue/8474
|\ \
| * | 3d64dee (origin/pr/3801) SI-8474  Inconsistent behavior of patch method
|  /
* |   068237a Merge pull request #3939 from lrytz/ystats
|\ \
| |/
|/|
| * 1ea6843 (origin/pr/3939) Make MultiChoiceSetting.compute easier to understand
| * 861ad72 Address PR feedback, fix MultiChoiceSetting.contains
| * 7655a70 Use Enumeration for MultiChoiceSetting
| * b562d96 -Ystatistics accepts a list of phases, cleanups in MultiChoiceSetting
| * 0a6dd09 Fix assertThrows, and the behaviors that it shadowed
*   87ca181 Merge pull request #3935 from lrytz/t8803
|\
| * f324ca5 (origin/pr/3935, pr/3935) SI-8803 generate super accessor for super[A], if A is outer superclass
*   9753f23 Merge pull request #3961 from lrytz/t8786-disable-test
|\
| * e9a6fbb (origin/pr/3961) SI-8786 disable part of test that's failing the jdk8 build
* |   a66f5df Merge pull request #3932 from gourlaysama/wip/t8498
|\ \
| * | 984025b (origin/pr/3932) SI-8498 @compileTimeOnly should be aware of bridge methods.
|  /
* |   266c210 Merge pull request #3951 from pawel-wiejacha/2.11.x_SI-8810_fix
|\ \
| * | 2b5ac5a (origin/pr/3951) SI-8810 scaladoc: fixed code block indentation normalization
|  /
* |   174193c Merge pull request #3960 from gourlaysama/wip/t8113
|\ \
| |/
|/|
| * d153cee (origin/pr/3960) SI-8113 allow a newline between a link target and title
|/
*   2f78ddd Merge pull request #3955 from som-snytt/issue/8410
|\
| * 6076d61 (origin/pr/3955) SI-8410 Summarize if warnings and not disabled
| * 7f21475 SI-8410 Don't warn fatally on disabled flag
* 816c399 Merge pull request #3958 from lrytz/merge/2.10-to-2.11-sept-2

% git merge abd595d
Auto-merging test/scaladoc/scalacheck/HtmlFactoryTest.scala
Merge made by the 'recursive' strategy.
 spec/_layouts/default.yml                                      |   2 +-
 src/compiler/scala/tools/nsc/CompilerCommand.scala             |   2 +-
 src/compiler/scala/tools/nsc/Global.scala                      |   2 +-
 src/compiler/scala/tools/nsc/MainBench.scala                   |   2 +-
 src/compiler/scala/tools/nsc/Reporting.scala                   |   4 +-
 src/compiler/scala/tools/nsc/ScriptRunner.scala                |  34 +++++++----
 src/compiler/scala/tools/nsc/backend/opt/Inliners.scala        |   2 +-
 src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala   |  24 ++++----
 src/compiler/scala/tools/nsc/settings/MutableSettings.scala    | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
 src/compiler/scala/tools/nsc/settings/ScalaSettings.scala      |  44 +++++++++------
 src/compiler/scala/tools/nsc/settings/Warnings.scala           | 195 ++++++++++++++++++++++++---------------------------------------
 src/compiler/scala/tools/nsc/typechecker/Infer.scala           |   2 +-
 src/compiler/scala/tools/nsc/typechecker/RefChecks.scala       |   3 +-
 src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala  |  20 +++++--
 src/compiler/scala/tools/nsc/util/StatisticsInfo.scala         |   4 +-
 src/library/scala/collection/Iterator.scala                    |  40 +++++++++----
 src/library/scala/collection/SeqViewLike.scala                 |  23 ++++++--
 src/reflect/scala/reflect/internal/StdNames.scala              |   2 +-
 src/scaladoc/scala/tools/nsc/doc/base/CommentFactoryBase.scala |  58 +++++--------------
 test/files/jvm/varargs/VaClass.scala                           |   4 +-
 test/files/neg/compile-time-only-a.check                       |   5 +-
 test/files/pos/t8410.flags                                     |   1 +
 test/files/pos/t8410.scala                                     |  15 +++++
 test/files/pos/t8498.scala                                     |   6 ++
 test/files/run/t8803.check                                     |  16 ++++++
 test/files/run/t8803.scala                                     |  57 +++++++++++++++++++
 test/junit/scala/tools/nsc/ScriptRunnerTest.scala              |  23 ++++++++
 test/junit/scala/tools/nsc/settings/SettingsTest.scala         | 109 +++++++++++++++++++++++++++++++++++-
 test/junit/scala/tools/nsc/symtab/CannotHaveAttrsTest.scala    |   4 +-
 test/junit/scala/tools/nsc/symtab/FreshNameExtractorTest.scala |   4 +-
 test/junit/scala/tools/nsc/symtab/StdNamesTest.scala           |   8 ++-
 test/junit/scala/tools/testing/AssertUtil.scala                |   2 +
 test/scaladoc/resources/code-indent.scala                      |   6 ++
 test/scaladoc/run/t8113.check                                  |   1 +
 test/scaladoc/run/t8113.scala                                  |  36 ++++++++++++
 test/scaladoc/scalacheck/HtmlFactoryTest.scala                 |   7 ++-
 36 files changed, 691 insertions(+), 297 deletions(-)
 create mode 100644 test/files/pos/t8410.flags
 create mode 100644 test/files/pos/t8410.scala
 create mode 100644 test/files/pos/t8498.scala
 create mode 100644 test/files/run/t8803.check
 create mode 100644 test/files/run/t8803.scala
 create mode 100644 test/junit/scala/tools/nsc/ScriptRunnerTest.scala
 create mode 100644 test/scaladoc/run/t8113.check
 create mode 100644 test/scaladoc/run/t8113.scala

% git merge -sours 2ac6dc0
Merge made by the 'ours' strategy.

% git merge 1b98061
Auto-merging src/compiler/scala/reflect/quasiquotes/Reifiers.scala
Auto-merging src/compiler/scala/reflect/quasiquotes/Quasiquotes.scala
Auto-merging src/compiler/scala/reflect/quasiquotes/Placeholders.scala
Auto-merging src/compiler/scala/reflect/quasiquotes/Parsers.scala
Auto-merging src/compiler/scala/reflect/quasiquotes/Holes.scala
Merge made by the 'recursive' strategy.
 src/compiler/scala/{tools => }/reflect/quasiquotes/Holes.scala        |  2 +-
 src/compiler/scala/{tools => }/reflect/quasiquotes/Parsers.scala      |  2 +-
 src/compiler/scala/{tools => }/reflect/quasiquotes/Placeholders.scala |  2 +-
 src/compiler/scala/{tools => }/reflect/quasiquotes/Quasiquotes.scala  |  2 +-
 src/compiler/scala/{tools => }/reflect/quasiquotes/Reifiers.scala     |  2 +-
 src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala        |  2 +-
 src/compiler/scala/tools/reflect/FastTrack.scala                      |  2 +-
 src/library/scala/sys/package.scala                                   |  9 ++++-----
 test/files/neg/warn-unused-privates.check                             | 39 +++++++++++++++++++++------------------
 test/files/neg/warn-unused-privates.scala                             |  1 +
 10 files changed, 33 insertions(+), 30 deletions(-)
 rename src/compiler/scala/{tools => }/reflect/quasiquotes/Holes.scala (99%)
 rename src/compiler/scala/{tools => }/reflect/quasiquotes/Parsers.scala (99%)
 rename src/compiler/scala/{tools => }/reflect/quasiquotes/Placeholders.scala (99%)
 rename src/compiler/scala/{tools => }/reflect/quasiquotes/Quasiquotes.scala (98%)
 rename src/compiler/scala/{tools => }/reflect/quasiquotes/Reifiers.scala (99%)
 ```