SI-6601 Close access loophole for value class constructors

ExtensionMethods marks private constructors of value classes as
notPRIVATE before pickling. When the pickler reads the flags of this
symbol, the anti-shift mechanism folds this into the regular PRIVATE
flag, so the class is pickled as though it was public all along. A
seprately compiled client can then call this constructor.

To remedy this, we must:

 - pickle `rawFlags`, rather than `flags`. This is symmetric with
   unpickling, which sets `rawFlags` with the value it reads.
 - Add `notPRIVATE` to the flagset `PickledFlags`.

We cannot make this change in a minor version, as the pickler
and unpickler must agree on `PickledFlags`.

I believe that this won't change the size of pickled flags
for the majority of symbols (ie, those without the notPRIVATE flag)
due to the variable length encoding in `writeLongNat`.

This also improves the situation for SI-6608. Reflection and
scalap (and, by extension, IntelliJ), no longer will see
as public methods that have had their access widened in
SuperAccessors (which is done selectively to support inlining
under separate compilation.)
Warn about locally identifiable init order issues.

This warns about a subset of initialization order issues which
can easily be identified by inspection, such as

  val x = y
  val y = 5

The likelihood of this formulation being intentional is miniscule.
update eclipse projects (partest, repl & scaladoc)

Since we've removed scala.annotations.serializable in 2.11,
you'll need to following bandaid to use eclipse on master.

This is the easiest fix, but certainly not recommended in general.

```
--- i/src/eclipse/scala-library/.classpath
+++ w/src/eclipse/scala-library/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
        <classpathentry kind="src" path="library"/>
-       <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
+       <classpathentry exported="true" kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
```

This corresponds to checking the export check box for the scala library jar
in the library's build path.
Merge pull request #2241 from adriaanm/eclipse-repl

update eclipse projects (partest, repl & scaladoc)
Merge pull request #2240 from paulp/pr/warn-forward-reference

Warn about locally identifiable init order issues.
Merge pull request #2236 from retronym/ticket/6601-2

SI-6601 Close access loophole for value class constructors
Optimize rebalance method by using null optimized list implementation.

rebalance method relies heavily on s.c.i.List. By replacing List with null
optimized version, NList, rebalance operation is significantly more faster.
Test indicate +10 % performance improvement for tree sizes >= 100.

Existing tests verify red-black tree invariants, including operations
involving tree rebalance.