makes bundles friendly to -Ywarn-dead-code

Apparently, the `new Bundle(???).impl` synthetic tree generated as a
macro impl ref for bundles evokes -Ywarn-dead-code warnings.

This pull requests changes `???` to `null` in order not to stress out
the checker. What's in the argument doesn't actually make any difference
anyway.
SI-8537 Puts SI-8157 fix under Xsource
SI-8504 fix NPE in the Java wrapper for a Scala Map.

MapWrapper blindly calls .hashCode on keys that can very well be null.
SI-8550 fix scaladoc for the default s.c.LinearSeq.

The default LinearSeq is a List (LinearSeq.newBuilder delegates to
immutable.LinearSeq.newBuilder, whose default is List).
SI-8549 Honour the @SerialVersionUID annotatation

In PR #1673 / 4267444, the annotation `SerialVersionId` was
changed from a `StaticAnnotation` to `ClassFileAnnotation` in
order to avoid silently ignoring non-literal UIDs like:

    @SerialVersionUID(0 - 12345L) class C

And to flag non-constant UIDs:

    @SerialVersionUID("!!!".length)

While this indeed was fold constants, the change was incomplete.
The compiler API for reading the argument from a `ClassFileAnnoation`
is different, on must look for a `LiteralAnnotArg`, rather than a
`Literal`.

This commit:

  - amends the backend accordingly
  - removes relevant duplication between `GenASM` and `GenBCode`
  - tests that the static field is generated accordingly

This will mean that we will break deserialization of objects from
Scalal 2.11.0 that use this annotation.
SI-8325 Accept infix star type outside patterns

This is a follow-up to SI-5702 which enabled use of
`*` in infix notation in patterns.

Most of the work is in distinguishing infix from a
sequence pattern.

Also, do not take backticked star as the repeated
parameter marker in postfix position. That is,
`Int``*``` is not `Int*` -- I hope double-tick
renders as tick. There is not a special use case
except that backticks mean "I am an identifier, as
is, and not a keyword."
SI-8549 Enforce serialization stability for selected collections

To date, we've been hesidant to offer any guarantees about
Java serialization of standard library types among heteregenous
Scala versions.

Nonetheless, we have added `SerialVersionUID` annotations to
parts of the standard library, to offer some stability. This
protects against two winds of change: automatic calculation of
this UID might differ between JVM versions, or it might differ
due to otherwise immaterial changes to the library in Scala
releases.

With this commit, we strengthen the guarantees. Classes
marked with `SerialVersionUID` will be serialization compatible
within minor releases of Scala. This is backed up by the
enclosed test.

After major releases, we reserve the right to break this.
But the test will serve to avoid *accidental* changes.

Specifically, the test case checks:

  - deserialize(serialize(x)) == x
  - serialize(x) is stable over time

I have included values of all types marked with `@SerialVersionUID`
in the library. For some types, I've added variations in the
values to exercise different subclasses, such as `Set1` / `Set2`.

This found that that the serialized form of predefined `ClassTags`
included the cached identity hash code and failed the stability
test. This wasn't an issue for correctness as they also provide
`readResolve`, but I marked those fields as `@transient` in any
case to comply with the test expectations.

That whole area is good example of a serialization worst-practice:
using anonymous classes in code like:

    val Object: Manifest[java.lang.Object] = new PhantomManifest[...](...) {
       private def readResolve(): Any = Manifest.AnyVal
    }

... will lead to instability if these declarations are shifted around
in the file. Named classes would be preferred. I've noted this in a
TODO comment for 2.12.
SI-6988 Test case for non-literal / non-constant SerialVersionUID

The `neg` test was already working since `SerialVersionUID`
was changed to a `ClassFileAnnotation`; the `run` test only
started working since the recently preceding commit that
made a compensatory test in the backend.
Merge pull request #3576 from som-snytt/issue/8325

SI-8325 Accept infix star type outside patterns
Merge pull request #3703 from huitseeker/issue/SI-8537

SI-8537 Puts SI-8157 fix under Xsource
Merge pull request #3711 from retronym/ticket/8549-2

SI-8549 Serialization: fix regression with @SerialVersionUID / start enforcing backwards compatibility
Merge pull request #3706 from gourlaysama/wip/t8550

SI-8550 fix scaladoc for the default s.c.LinearSeq.
Merge pull request #3689 from xeno-by/ticket/8523

makes bundles friendly to -Ywarn-dead-code
Merge pull request #3704 from gourlaysama/wip/t8504

SI-8504 fix NPE in the Java wrapper for a Scala Map.
Merge commit 'b5392a0' into merge/master-to-2.11.x
Merge pull request #3729 from retronym/merge/master-to-2.11.x

Merge master to 2.11.x