spec: generated TOC with linkable headers

This adds a table of contents to the spec, with a way to get the link of a
header on hover (like on GitHub) and a "return to top" small icon at the
end of each section.

Jekyll generates the H1-level table of contents, and then the current
one is expended using jQuery all the way down to H5 titles. Examples and
H6 headers are ignored.

GitHub's (MIT licensed) octicons are used for nice "link" and "up"
icons.
spec: a print stylesheet to remove the TOC when printing
spec: a header that links to the index, with a scala logo

...and a Scala favicon.
Bump timeout in interactive tests from 10s -> 30s.

Seeing too many of these failures on our build servers.

https://scala-webapps.epfl.ch/jenkins/view/2.N.x/job/scala-nightly-auxjvm-2.11.x/148/jdk=jdk8,label=auxjvm/console

This is most likely due to load on the machines.
Cleanup a few flags in test/files/

 * String interpolation isn't Xexperimental anymore

   A few useless Xexperimental flags in tests were left behind by 6917cca,
   after string interpolation was made non-experimental in 983f414.

 * things added under -Xfuture in 2.10 are very much Xpresent now, the
   flag isn't needed anymore.
Better ant / junit interaction

Currently junit test sources are always rebuilt, that's wasteful. The
second dependency on the junit task is there so that the first can be
skipped if sources haven't changed.

Also normalize package names versus location in the `test/junit` folder:
ant isn't very clever when it comes to selectively recompiling tests, so
now editing a test will only cause that one to be recompiled (instead of
~13 files every time).

This makes TDD with junit even faster.
Merge pull request #4007 from retronym/topic/bump-timeout

Bump timeout in interactive tests from 10s -> 30s.
Merge pull request #4009 from gourlaysama/wip/test-flags

Cleanup a few compiler flags in test/files/
Merge pull request #3996 from gourlaysama/wip/spec

spec: generated TOC, with linkable headers and return to top links
SI-8445, SI-6622 test cases, already fixed

They were most likely fixed in #3931 / e3107465c3.

The test case for SI-6622 is taken from Jason's PR #2654. I adjusted
the EnclosingMethod to be `null` in two places in the check file, for
the classes that are owned by fields (not methods).
SI-8868 Fix unpickling of local dummy symbols

These pop up as the owner of symbols in annotation arguments,
such as the ones introduced by the names/defaults desugaring.

The first two test cases here motivate the two patches to Unpicker.

The third requires both fixes, but exploits the problem directly,
without using `@deprecated` and named arguments.

See also 14fa7be / SI-8708 for a recently remedied kindred bug.
Merge pull request #4013 from retronym/ticket/8868

SI-8868 Fix unpickling of local dummy symbols
Merge pull request #4011 from lrytz/t8445-6622

SI-8445, SI-6622 test cases, already fixed
SI-8087 keep annotations on mixed-in private[this] fields

Related to SI-2511 / eea7956, which fixed the same issue for non
`private[this]` fields.

If you have

    trait T { private[this] val f = 0 }
    class C extends T

Mixin geneartes an accessor method `T.f` with owner `T`. When
generating the field in `C`, the Mixin.mixinTraitMembers calls
`fAccessor.accessed`. The implementation of `accessed` does a lookup
for a member named `"f "` (note the space). The bug is that
`private[this]` fields are not renamed to have space
(`LOCAL_SUFFIX_STRING`) in their name, so the accessed was not found,
and no annotations were copied from it.
Don't remove elements from a map during iteration.

Doing so relies on implementation details which might change.

See #3911 / SI-8774.
Merge pull request #4018 from retronym/ticket/8774-concurrent-modification

Don't remove elements from a map during iteration.
SI-8624 PriorityQueue documentation is not clear enough

Added a paragraph explaining that dequeue is the only way to get your elements in priority order.
SI-8869 Prevent ill-kindedness in type lambdas

When type checking an type application, the arguments are allowed
to be of kinds other than *. This leniency is controlled by the
`ContextMode` bit `TypeConstructorAllowed`.

(More fine grained checking of matching arity a bounds of type
constructors is deferred until the refchecks phase to avoid
cycles during typechecking.)

However, this bit is propagated to child contexts, which means
that we fail to report this error in the lexical context marked
here:

    T[({type x = Option}#x)]
        `-------------'

This commit resets this bit to false in any child context
relates to a different tree from its parent.
SI-8870 Fix markup errors in the Types section of the spec

Bad: `T'_n`
Good: `T_n'`
Merge pull request #4010 from lrytz/t8087

SI-8087 keep annotations on mixed-in private[this] fields