Restrict Import-Package for scala.*

Restrict the Import-Package OSGi manifest entry to match only binary compatible scala.* packages. This is necessary, because the Scala OSGi versions do not match the OSGi semantic versioning policy and are not binary compatible between their OSGi minor versions. This means that e.g. the scala-compiler-2.11 bundle will never work if it imports a scala.* package from 2.10 or 2.12. Thus this patch enforces a tight version range, only accepting versions within the same minor version. E.g. Applied to version 2.11.1 the range would expand to "[2.11,2.12)".

Additionally, a Java 6 execution environment will be enforced for OSGi.

All module bundles need to have their own version numbers. This was not the case before this commit. Although these module bundles were only build for testing, they are needed to be correct, now, that we have stricter package import constraints and some test cases rely on them.
Add JavaSE-1.7 to set of required execution environments.

Without it, Equinox on Java 7 might spit out some warnings, which might lead to the wrong impression, that the Scala bundles are not well supported for newer platforms.
Refined package imports for scala modules.

Made scala.xml.* import optional and removed scala.util.parsing.json import.
SI-8325 Spec accepts infix type *

Remove the clause in 3.2.8 that reserves `*` as a postfix
modifier thing.  For emphasis, the language that an infix
type name can be an arbitrary identifier is retained, sans buts.
Re-added the scala.util.parsing package import, with optional resolution.
SI-8475 Fix off by one in GroupedIterator when Streaming

This also affected sliding and grouped since they defer to GroupedIterator
SI-8576 Temporarily disable part of serialization test

Parts of this test fail if testing a library built with -Xcheckinit.

The failures seem to be in two categories:

  - A component of the serialized structure does not have a
    declared SerialVersionUID, meaning that the extra field
    added to track initialization results in a different ID.
    This manifests as a `java.io.InvalidClassException` when
    deserializing the blobs of data saved in the test case.
  - Spurious `UnitializedFieldErrors` when calling methods on
    the object that has been serialized and then deserialized.

Until we figure out the right course of action (more @SerialVersionUID
annotations / weaker tests / ...), this commit disabled those tests.
Merge pull request #3739 from retronym/ticket/8549-partial-revert

SI-8576 Temporarily disable part of serialization test
SI-8578 Avoid fresh name clashes under -Ydelambdafy:method

It is important to append the fresh 'N' after '$'. Otherwise, we
find out the hard way that ("foo$11" + "1") == ("foo$1" + "11").
SI-8578 Avoid another potential fresh name clash

No test case for this one, but see the preceding commit for
the class of bug that I'm trying to avoid.
Merge pull request #3722 from som-snytt/issue/8325-spec-update

Issue/8325 spec update
Merge pull request #3742 from retronym/topic/8578

SI-8578 Avoid fresh name clashes under -Ydelambdafy:method
SI-8582 Pending test for InnerClasses bug in GenBCode

As seen in a runtime reflection failure in Slick during a GenBCode
enabled run of our beloved Community Build.
Merge pull request #3744 from retronym/ticket/8582

SI-8582 Pending test for InnerClasses bug in GenBCode
SI-8507 Avoid lazy val in StringContext

This mild refactor eliminates the lazy val StringBuilder
and arguably makes the code easier to read.

There is a small unit test but no benchmark to prove
anything useful about performance. The ticket notes
contention due to lazy implementation.
Allow tracing methods and classes in GenBCode
Fix BeanInfo generation for GenBCode
SI-8582 emit InnerClasses attribute in GenBCode

I removed the `-bcode` test since we have a build that passes
`-Ybackend:GenBCode` to all tests.

Short intro do the [`InnerClass` attribute][1]:

  - A class needs one `InnerClass` attribute for each of its nested
    classes

  - A class needs the `InnerClass` attribute for all (nested) classes
    that are mentioned in its constant pool

The attribute for a nested class `A$B$C` consists of the long name of
the outer class `A$B`, the short name of the inner class `C`, and
an access flag set describig the visibility.

The attribute seems to be used for reflection.

[1]: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.6
Move t8582 to test/files/jvm
Merge pull request #3745 from lrytz/t8582

SI-8582 emit InnerClasses attribute in GenBCode