SI-5091 Move named-args cycle test from pending to neg

There is a typechecking cycle, and since 4669ac180e5 we now report
this in a clearer manner.

Once we change the language to unconditionally interpret an
assignent in argument position as a named argument would be the
only way to get this over to `pos`.
Update check files for -Ydelambdafy:method

Should have been done in 63207e1.
Fix t8549 under -Ydelambdafy:method

the structure of Option.class generated by delambdafy:method is
slightly different. For example, lambdas declared within Option are
not emitted as nested classes, so under delambdafy:method there's no
inner class entry for anonfun classes.

The test failed because serializing a ClassTag involves serializing an
Option. Option did not have a `@SerialVersionUID`, and the classfile
generated by delambdafy:method has a different value.

The annotation is required on the parent class (Option) as well as the
subclasses (Some / None). De-serializing a Some will fail if Option
has a different SerialVersionUID.

Relates to SI-8576. We should probably have more SVUID annotations in
the library.
Ensure closure elimination test runs under -Ydelambdafy:inline
Ensure delambafy:inline for anonymous function class javap test

https://issues.scala-lang.org/browse/SI-8898
Fix lambda names under delambdafy:method in innerClassAttribute test

This should have been done in 63207e1
SI-8711 ScalaVersion.unparse doesn't produce valid versions

There is no dot between `major.minor.rev` and `-build` in a scala
version, yet that's what unparse returns for

```
// was "2.11.3.-SNAPSHOT"
ScalaVersion("2.11.3-SNAPSHOT").unparse
```
Add option -port to fsc

Option "port" limits compile server lookup and start to given port.
Normally fsc will start a compile server in a random port if no server
is yet running. This can be problematic with firewalls and/or remote
compile servers. Option "port" should not be confused with option
"server" which looks for a compile server in given host and port and
fails if such server is not found.

Automatic tests for command line user interface do not exist at all.
Thus, adding a test for one new option would require designing a whole
new testing method.
SI-8835 Fix implementation of Iterator drop to remove quadratic behavior
SI-8927 Update OSGi stuff to get rid of bndlib warning

The way the desired OSGi frameworks are chosen has changed between
Pax Exam versions:

On earlier versions, specifying it in code was fine, but PAX Exam 4.x
runs the tests on the first OSGi framework it finds on classpath.

An exclusion for the transitive dependency org.osgi.core was added,
because it seems that artifact has broken dependecies (which would
have brought us back to square one).
Good thing is that it isn't needed here, because the OSGi framework JARs
contain all necessary classes.
SI-8916 Fix -Ywarn-unused-import warnings
SI-8916 Further fixes with -Ywarn-unused included
SI-8916 Revert addition of -Ywarn-unused[-import]

  -Ywarn-unused-import: creates a bogues warning, see SI-7750

  -Ywarn-unused: creates a lot of noise & has bugs, see SI-7707, SI-7712
SI-8947 Avoid cross talk between tag materializers and reify

After a macro has been expanded, the expandee are expansion are
bidirectionally linked with tree attachments. Reify uses the back
reference to replace the expansion with the expandee in the reified
tree. It also has some special cases to replace calls to macros
defined in scala-compiler.jar with `Predef.implicitly[XxxTag[T]]`.
This logic lives in `Reshape`.

However, the expansion of a macro may be `EmptyTree`. This is the case
when a tag materializer macro fails. User defined macros could do the
also expand to `EmptyTree`. In the enclosed test case, the error
message that the tag materializer issued ("cannot materialize
class tag for unsplicable type") is not displayed as the typechecker
finds another means of making the surrounding expression typecheck.

However, the macro engine attaches a backreference to the materializer
macro on `EmpytyTree`!

Later, when `reify` reshapes a tree, every occurance of `EmptyTree`
will be replaced by a call to `implicitly`.

This commit expands the domain of `CannotHaveAttrs`, which is mixed
in to `EmptyTree`. It silently ignores all attempts to mutate
attachments.

Unlike similar code that discards mutations of its type and position,
I have refrained from issuing a developer warning in this case, as
to silence this I would need to go and add a special case at any
places adding attachments.
Fix default value for ScalaVersionSetting

The default value was NoScalaVersion before, because tryToSet (where
the default was supposed to be set) is not called at all if the option
is not specified.

The initial value of Xmigration is set to NoScalaVersion (which it was
before, the AnyScalaVersion argument was ignored). AnyScalaVersion
would be wrong, it would give a warning in `Map(1 -> "eis").values`
if the option was not specified. See tests.
SI-6051 Test case, the issue seems to be fixed.
Merge pull request #7 from lrytz/t6051

SI-6051 Test case, the issue seems to be fixed.
SI-8925, SI-7407 test cases, fixed in new backend

Given that the issues are old (2.10) and we move to the new backend
in 2.12, I don't plan to fix them in GenASM.

The test case for 7407 existed already, this commit just adds
`-Yopt:l:none` to the flags to make no dead code is eliminated.
Debugging utility to print ASM instructions
GenBCode: Simplify branching instructions

This commit implements simplifications to branching instructions, for
example `CondJump l; GOTO l` is replaced by `POP; GOTO l`.

The individual optimizations are explained in doc comments.

A later commit will add compiler flags to allow enabling the new
optimizations.