This ensures that typechecking custom unapplications in silent mode
doesn't leak uncatchable errors. Interestingly enough, the problem
only manifested itself for custom unapply methods, not for synthetic
ones generated for case classes.
SI-8844 Fix regression with existentials + type aliases

Regressed in 2a1b15e / SI-8283. Another specimen of an archetypal
bug: unwanted dealising by using `typeSymbol`, rather than
`typeSymbolDirect`.
spec: use the yaml title as the HTML title
Merge pull request #3980 from retronym/ticket/8844

SI-8844 Fix regression with existentials + type aliases
spec: add syntax highlighting for scala code with highlight.js

This adds syntax highlighting for all code scala blocks. Highlighting is
done after MathJax is done rendering so that latex can be used in code
blocks (and it currently *is* used).

Sadly Scala isn't common enough to be bundled in the highlight.min.js
available from CDNs, so we commit a local version of version 8.2 with
only scala bundled in it. The only other language used (ebnf) isn't
supported by highlight.js.
spec: fix latex formatting all over the place

Two things worth mentioning:

 - `\em` and `emph` are not supported by MathJax,
 - and things like `\mathcal{C}_0` require escaping the `_`,
   otherwise markdown sees it as the beginning of  `_some string_`.
   It doesn't happen without the closing bracket in front, e.g. in `b_0`.
spec: remove trailing whitespace everywhere
spec: fix broken links and anchors, including examples

For examples, the "name" of the example (like "Example Ordered") is only
used to derived its html id so that one can link to it (see
`layouts/default.yml`). Ideally all examples should have a name; here I
only added enough to satisfy existing links.
SI-8459 fix incorrect positions for incomplete selection trees

The mentioned issue is a presentation compiler issue, but its root cause is a bug in the parser which incorrectly assigned positions to incomplete selection trees (i.e. selections that lack an indentifier after dot and have some whitespace instead).

In detail: for such incomplete selection trees, the "point" of the position should be immediately after the dot but instead was at the start of next token after the dot. For range positions, this caused a pathological situation where the "point" was greater than the "end" of the position. This position is later used by the typechecker during resolution of dynamic calls and causes it to crash. Of course, because a syntactically incorrect code is required for the bug to manifest, it only happens in the presentation compiler.
SI-8852 Support joint compilation of Java interfaces w. statics

We had to change the java parser to accomodate this language
change in Java 8.

The enclosed test does not require JDK8 to run, it only tests
JavaParsers.

Here is a transcript of my manual testing using Java 8.

```
% tail test/files/run/8852b/{Interface.java,client.scala}
==> test/files/run/8852b/Interface.java <==
public interface Interface {
  public static int staticMethod() {
  	return 42;
  }
}

==> test/files/run/8852b/client.scala <==
object Test extends App {
  assert(Interface.staticMethod() == 42)
}

// Under separate compilation, statics in interfaces were already working
% rm /tmp/*.class 2> /dev/null; javac -d /tmp test/files/run/8852b/Interface.java && scalac-hash v2.11.2 -classpath /tmp -d /tmp test/files/run/8852b/client.scala && scala-hash v2.11.2 -classpath /tmp -nc Test

// Under joint compilation, statics in interfaces now work.
% rm /tmp/*.class 2> /dev/null; qscalac -d /tmp test/files/run/8852b/{client.scala,Interface.java} && javac -d /tmp test/files/run/8852b/Interface.java && qscala -classpath /tmp -nc Test
```
Merge pull request #3974 from xeno-by/topic/buffer-pattern-expander-errors

This ensures that typechecking custom unapplications in silent mode
Merge pull request #3989 from retronym/ticket/8852

SI-8852 Support joint compilation of Java interfaces w. statics
Merge pull request #3988 from ghik/issue/8459

SI-8459 fix incorrect positions for incomplete selection trees
Merge pull request #3984 from gourlaysama/wip/spec

General formatting improvements in the spec
Nicer spec
Further fixes