Rank based take/drop/slice.

Tree navigation based on node rank is faster than using compare
method. rank is simply count(tree.left) + 1.
Removed many @inline annotations and final modifiers.

It is my belief that these @inlines and finals landed between
unhelpful and harmful. I am sure this will be disputed in some
cases. It's too much and too difficult to measure except in the
aggregate unless we have specific @inline sites to discuss.
I don't know upon whom the burden of proof lies.  I think we
should err on the side given here, since there is no evidence
of any consistent rationale being applied and it is easy to
verify the negative impact scala compiler inlining can have on
hotspot's far more sophisticated inlining.
Retain Ordering in drop/take/slice signatures.

Addresses code review feedback by @axel22.
Add RedBlackTree tests for take/drop/slice.

Addresses review feedback by axel22.
SI-6390 removes Trees#ArrayValue from the API

Introduced by uncurry - therefore it can be seen
neither by macros, nor by runtime reflection.

Despite never being pickled, ArrayValue is supported by unpickler
so I couldn't move it exclusively to scala-compiler.jar.

Figuring out the mysterious reason for pickling ArrayValue is left
to future work.
fixes NameTypes in base names

NameType is introduced in base.StandardNames#NamesBase to abstract away the
difference between term names and type names in order to encode common names
such as EMPTY or WILDCARD.

Flavor-specific name repositories, such as TermNames and TypeNames are supposed
to override NameType fixing it to correspondingly TermName or TypeName.

Unfortunately I completely overlooked this and as a result some standard names
were typed with insufficient precision, e.g. This(tpnme.EMPTY) didn't work.
prepping for the refactoring

Reification (both tree-based and type-based) should be avoided
before we release 2.10.0-final, since it impairs reflection refactorings
like the upcoming one.

Also the upcoming refactoring moves tag materialization anchors, and we
have to add them to fast track in advance, so that they are treated as
macros later.
Merge pull request #1204 from chuvoks/rb

Rank based take/drop/slice
SI-6392 wraps non-terms before typecheck/eval

Wrap non-term arguments of typecheck and eval, so that toolboxes
can work with full-fledged files (except for package declarations).
Merge pull request #1333 from paulp/less-inline

Removed many @inline annotations and final modifiers.
SI-6363 removes scala.reflect.base

As the experience has shown, there's no need for a separate layer of reflection
in scala-library.jar. Therefore I'm putting an end to it.
SI-6363 deploys the updated starr
Merge pull request #1354 from scalamacros/ticket/6363

merges scala.reflect.base into scala.reflect.api
Merge pull request #1358 from scalamacros/ticket/6392

SI-6392 wraps non-terms before typecheck/eval
Fixes SI-6260

Guards against bridge methods that clash with other methods. Two tests: The neg test is the original ticket. The run test tweaks things slightly so that the generated bridge method does not clash, and tests that the necessary unboxings are indeed performed at runtime.
Cleanup of OverridingPairs

Added a default value to a hashmap so that we can work with it without Option acrobatics.
Value classes: eliminated half-boxing

We now apply erasure of value classes everywhere. previously, erasure was disabled in the value class itself. This led to irregegularities and bugs. See test run/valueclasses-pavlov.scala	for something that led to a ClassCastException before.
New test case for closing SI-6385

The fixes for SI-6260 + elimination of hlaf-boxing also solve SI-6385
New test case for SI-6337

This test case shows that the variant in the comment of SI-6337 now compiles also.
Disabled failing build manager tests.

When the refined build manager computes its change sets it mixes up the types. It computes constructors of inner classes of the first compilation that point to types of the second compilation. This breaks a useful assertion in ExtensionMethods. The error you get for t4245 is

java.lang.AssertionError: assertion failed: unexpected constructor erasure A#6956.this.B#20211 for class B#6963

What goes on here is that the primary constructor of inner class B#6963 points to the new version of that inner class A#6956.this.B#20211. This happens during the computation of change sets, not during normal compilation. Since it looks like the computation of change sets is broken I have disabled the tests, rather than disabling the assertion.

It seems that during residential compilation, the result type of a constructor can be a different version of the enclosing class. I could not reproduce this