SI-7290 Discard duplicates in switchable alternative patterns.

The pattern matcher must not allow duplicates to hit the
backend when generating switches. It already eliminates then
if they appear on different cases (with an unreachability warning.)

This commit does the same for duplicated literal patterns in an
alternative pattern: discard and warn.
Expand test for SI-6124 to demonstrate cause of SI-7285.
SI-7285 Fix match analysis with nested objects.

The fix for SI-6146 introduced `nestedMemberType` to
enumerate sealed subtypes based on the (prefixed) type
of the scrutinee and the symbols of its sealed subclasses.
That method needed to widen `ThisType(modSym)`s to
`ModuleTypeRef(modSym)` before calling `asSeenFrom`.

However, this could lead to confused in the match analysis,
which sees `ModuleTypeRef` as distinct from singleton types
on the same modules (after all, they aren't =:=). Spurious
warnings ensued.

This commit makes two changes:

 - conditionally re-narrow the result of `asSeenFrom` in `nestedMemberType`.
 - present `a.b.SomeModule.type` as `SomeModule` in warnings emitted
   by the pattern matcher.
SI-6387 Clones accessor before name expansion

When a symbol's name is expanded due to a conflict during
composition (e.g. multiple traits with same-named members, but
which are not both visible at the language level in the concrete
class) the compiler renames some symbols with expanded names which
embed the full name of the declaring class to avoid clashes.

In the rare cases when the accessor overrides the member in base
class, such expansion either results in AbstractMethodError when
the base method is abstract, or, even worse, can change the
semantics of the program.

To avoid such issues, we clone the accessor symbol, clear its
ACCESSOR flag and enter the symbol with an unchanged name.
restored dependency of pack.done on quick.bin
run test.bc as part of tests on 2.10.x

also added test.bc-opt target as binary compatibility differs between (non)optimized builds...
remove unused ant targets: test.ant, test.classload, test.positions
Formatting. Introduce {asm,forkjoin,fjbg}-classes props.
Remove duplication in java builds of fjbg/asm/forkjoin
Preparation for faster PR validation

Added starr.number, so that `ant -propertyfile starr.number -Dlocker.skip=1`
works across branches.

Introduced target `test.core`, which skips `test.stability`, since that requires
`locker == quick`, whereas `locker == starr` with the above settings.
(It's interesting to see for which files it fails when that assumption is broken.)

Stability will still be tested on a nightly basis. It's rarely broken.
Let continuations library sources determine docs.lib's actuality
SI-7290 Minor cleanups driven by review comments.

  - make a def a val, we only need to compute it once
  - add a clarifying comment
  - only report the first duplicate
Run test.scaladoc before test.suite. Fail fast.
ant clean only zaps the quick stage
Merge pull request #2288 from paulp/pr/2273-with-edits

SI-6387 Clones accessor before name expansion
Clean up pack targets. Better dependency tracking.

Target pack.@{project} is considered up to date iff
classes emitted by quick.@{project} are.

TODO: encapsulate "classes emitted by quick.@{project}".
For now, they are duplicated as references
to `${build-@{stage}.dir}/classes/@{destproject}`
(in staged-scalac and *.build.path)
Merge pull request #2291 from retronym/ticket/7290

SI-7290 Discard duplicates in switchable alternative patterns.
Merge pull request #2292 from retronym/ticket/7285

SI-7285 Fix match analysis with nested objects
Merge pull request #2314 from adriaanm/build-fixes

further tweaks to the ant build
Use java-diff-utils for diffing in partest.

We now use the unified diff format, hence the updated check files.

It's not clear to me how partest's classpath is managed,
but the approach in this commit works for the ant task and script invocation.
The diffutils jar is injected in the parent classloader.