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.
[backport] SI-7756 Uncripple refchecks in case bodies

In 65340ed4ad2e, parts of RefChecks were disabled when
we traversed into the results of the new pattern matcher.
Similar logic existed for the old pattern matcher, but in
that case the Match / CaseDef nodes still existed in the tree.

The new approach was too broad: important checks no longer
scrutinized the body of cases.

This commit turns the checks back on when it finds the remnants
of a case body, which appears as an application to a label def.

Conflicts:
	src/compiler/scala/tools/nsc/typechecker/RefChecks.scala

Cherry pick of 3df1d77fc984b976efa68098206e801cf3b83a9e
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.
Merge pull request #3998 from retronym/backport/7756

[backport] SI-7756 Uncripple refchecks in case bodies
Rename ClassPath.findSourceFile to ClassPath.findClassFile

If you look at the implementation of that method and its usage
its clear that it should have been named `findClassFile` from the
beginning because that's what it does: find a class file and
not a source file.
Get rid of Platform.doLoad method.

Since .NET backend got removed this method is a no-op.
Merge pull request #3999 from mpociecha/classpath-findSourceFile-method-renaming

Rename ClassPath.findSourceFile and delete Platform.doLoad
Add an @implicitAmbiguous annotation

Example usage:

    trait =!=[C, D]

    implicit def neq[E, F] : E =!= F = null

    @annotation.implicitAmbiguous("Could not prove ${J} =!= ${J}")
    implicit def neqAmbig1[G, H, J] : J =!= J = null
    implicit def neqAmbig2[I] : I =!= I = null

    implicitly[Int =!= Int]

Which gives the following error:

    implicit-ambiguous.scala:9: error: Could not prove Int =!= Int
      implicitly[Int =!= Int]
                ^

Better than what was previously given:

    implicit-ambiguous.scala:9: error: ambiguous implicit values:
     both method neqAmbig1 in object Test of type [G, H, J]=> Main.$anon.Test.=!=[J,J]
     and method neqAmbig2 in object Test of type [I]=> Main.$anon.Test.=!=[I,I]
     match expected type Main.$anon.Test.=!=[Int,Int]
      implicitly[Int =!= Int]
                ^
Merge remote-tracking branch 'origin/2.10.x' into merge/2.10.x-to-2.11.x-20140925
Merge pull request #4002 from retronym/merge/2.10.x-to-2.11.x-20140925

Merge 2.10.x to 2.11.x
Add a scala-typelevel project

This is where our additions to scala-library.jar will go. The current
content is the implicitAmbiguous annotation.

I seemed to have made the right changes to make the REPL, the test
classpath and scala-dist to work. I'm not sure if there's anything else
we need but I also inserted references to typelevel where library was
also referenced, just in case.
Merge pull request #32 from puffnfresh/feature/implicit-ambiguous-annotation

Add an @implicitAmbiguous annotation
Update README to be specific to Typelevel
README build status should be master build, not PR
Avoid test fragility to changes in Predef

The check file used to contain a stack trace entry from
Predef with a line number. I've made the macro fail
in a different manner that avoids this fragility.
Merge pull request #4006 from retronym/topic/defragility

Avoid test fragility to changes in Predef
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.