Read version 51 (JDK 7) class files.

This commit makes the ClassFileReader/ICodeReader parse class files
from JDK 7 (class file version 51). It does that by skipping over
the method handle related entries in the constant pool and by doing
some dummy processing on invoke dynamic instructions. The inliner
is updated to not try to inline a method with an invoke dynamic
instruction. A place holder INVOKE_DYNAMIC instruction is added to ICode
but it is designed to create an error if there's ever any attempt to
analyze it. Because the inliner is the only phase that ever tries
to analyze ICode instructions not generated from Scala source and
because Scala source will never emit an INVOKE_DYNAMIC, the place
holder INVOKE_DYNAMIC should never cause any errors.

A test is included that generates a class file with INVOKE_DYNAMIC
and then compiles Scala code that depends on it.
[backport] SI-7237 Always choose ForkJoinTaskSupport

... on Java 6 and above.

ForkJoinTaskSupport works on Hotspot, Avian and J9,
while ThreadPoolTaskSupport causes the test
test/files/scalacheck/parallel-collections
to reliably hang on all three.

We keep ThreadPoolTaskSupport around to keep the hope
alive that we still have a glimpse of 1.5 support.
SI-6210 Test case for already-fixed pattern matcher bug

The fix arrived in SI-6022 / #1100 / 2.10.0-M7.
SI-7246 Make $outer pointer elision Java aware

In e0853b3, a space-saving optimization elided the outer pointer
of inner classes if the the (protected) outer pointer of the
immediate parent class was guaranteed to point to the same instance.

But, this check failed to account for Java parent classes, which
don't follow the Scala scheme. This commit disables the optimization
in that case.

The original test case in e0853b3 was anemic, I've fleshed it out to:

  - test the presense or absense of $outer pointers with Java reflection
  - test the optimization works in the presense of aliased and annotated
    aliased types. (The former worked already, the latter required a
    change to the implementation.)
  - Test the negative case when the prefixes don't line up and the
    subclass in fact needs its own $outer.

This patch is based on work by Euguene Vigdorchik with some
additions by Jason Zaugg.
Fix typos in build.xml
SI-7299 Improve error message for eta-expanding 23+ param method

Before, we got `error: missing arguments for method f`.
Log when invokedynamic instruction is encountered

Based on the review of https://github.com/scala/scala/pull/2257, this
commit adds a debuglog when an invokedynamic instruction is found
during class file parsing as a reminder that the implementation is
just a place holder.
Merge pull request #2293 from retronym/ticket/6210

SI-6210 Test case for already-fixed pattern matcher bug
Merge pull request #2278 from kzys/jira-6580

SI-6580 Scaladoc: Should not close void elements
Merge pull request #2257 from JamesIry/2.10.x_classfile_51

Read version 51 (JDK 7) class files.
Merge pull request #2304 from adriaanm/build-cleanup-2.10

Fix typos in build.xml
Merge pull request #2306 from retronym/ticket/7299

SI-7299 Improve error message for eta-expanding 23+ param method
Merge pull request #2270 from retronym/ticket/7246-2

SI-7246 Make $outer pointer elision Java aware
Merge pull request #2252 from soc/SI-7237-2.10

[backport] SI-7237 Always choose ForkJoinTaskSupport
SI-6715 Shouldn't return "" from TermNames#originalName