SI-6370 changed ListMap apply0 method to produce correct error message when a key is not found
Current implementation of apply0 relies on tail method to iterate over all keys.
When the list gets to its end, tail produces an 'empty map' message in its exception, which is thrown by ListMap.
This change checks if the collection is empty before calling tail and provides a more appropriate key not found message.

Signed-off-by: Vinicius Miana <vinicius@miana.com.br>
SI-6935 Added readResolve in BoxedUnit
When deserializing Unit, it would return an instance of Object, but not a Scala Unit.
By adding readResolve, the deserialization of Unit will work.
SI-6225 Fix import of inherited package object implicits

The prefix in the ImplicitInfo must be com.acme.`package`.type,
rather than com.acme.
SI-6158 Restore compile error output under partest --show-log

Seems like the ifs and elses didn't quite survive e830a7ce9.

Before:

    ./test/partest --show-log test/files/run/foo.scala
    Testing individual files
    testing: [...]/files/run/foo.scala                                    [FAILED]

Now:

    ./test/partest --show-log test/files/run/foo.scala
    Testing individual files
    testing: [...]/files/run/foo.scala                                    [FAILED]
    foo.scala:1: error: expected class or object definition
    askdfjskl
    ^
    one error found
    1 of 1 tests failed (elapsed time: 00:00:01)
Tolerate symbol sharing between accessor/field.

Recently, TreeCheckers (-Ycheck) was extended to
report on references to symbols that were not in
scope, which is often a sign that some substitution
or ownership changes have been omitted.

But, accessor methods directly use the type of the
underlying field, without cloning symbols defined
in that type, such as quantified types in existentials,
at the new owner.

My attempt to change this broke pos/existentials.scala.

Instead, I'll just look the other way in TreeCheckers.
SI-6514 Avoid spurious dead code warnings

`deadCode.expr` stores the method symbol most recently encountered
in `handleMonomorphicCall`, and uses this to avoid warnings
for arguments to label jumps and `Object#synchronized` (which
sneakily acts by-name without advertising the fact in its type.)

But this scheme was insufficient if the argument itself contains
another method call, such as `matchEnd(throw e(""))`.

This commit changes the single slot to a stack, and also
grants exemption to `LabelDef` trees. They were incorrectly
flagged in the enclosed test case after I made the the first change.
Merge pull request #2099 from retronym/ticket/6158

SI-6158 Restore compile error output under partest --show-log
silences t6323a

Tag materialization notices enabled with -Xlog-implicits are now echoes
not printlns. Therefore, they go into stderr, not stdout, getting logged
by partest and not spamming stdout of partest.
Merge pull request #2096 from ViniciusMiana/SI-6370

SI-6370 changed ListMap apply0 method to produce correct error message
Merge pull request #2097 from ViniciusMiana/SI-6935

SI-6935 Added readResolve in BoxedUnit
Merge pull request #2098 from retronym/ticket/6225

SI-6225 Fix import of inherited package object implicits
Merge pull request #2102 from retronym/topic/tree-checker-leniancy

Tolerate symbol sharing between accessor/field.
Merge pull request #2111 from retronym/2.10.x

SI-6514 Avoid spurious dead code warnings
Merge pull request #2113 from scalamacros/topic/silence

silences t6323a
step 0. synch 2.11 and 2.10 patmat

added compatibility stubs so the rest of the source can be identical
(modulo the on/off potential for the 2.10.x "new" pattern matcher
 the old one is gone in 2.11, so no turning off new patmat)

The stubs:

```
protected final def dealiasWiden(tp: Type) = tp.dealias // dealiasWiden in 2.11
protected final def mkTRUE  = CODE.TRUE_typed
protected final def mkFALSE = CODE.FALSE_typed
protected final def hasStableSymbol(p: Tree) = p.hasSymbol && p.symbol.isStable // hasSymbolField
protected final def devWarning(str: String) = debugwarn(str)
```
step 1. move pattern matching to transform.patmat
step 2. split patmat in smaller files