SI-7292 Deprecate octal escape literals
c.typeCheck(silent = true) now suppresses ambiguous errors

Otherwise use cases like the one shown in the attached test (trying to
typecheck something, which leads to an ambiguous overload error) will
mysteriously fail compilation.
Reimplementing much of the DefaultPromise methods
Optimizations:
1) Avoiding to call 'synchronized' in tryComplete and in tryAwait
2) Implementing blocking by using an optimized latch so no blocking ops for non-blockers
3) Reducing method size of isCompleted to be cheaper to inline
4) 'result' to use Try.get instead of patmat
Merge pull request #2508 from viktorklang/wip-removing-synchronization-from-DefaultPromise-2.10-√

Reimplementing blocking awaiting for Futures so only the blockers have t...
SI-7391 Always use ForkJoin in Scala actors on ...
... Java 6 and above (except when the porperty
actors.enableForkJoin says otherwise)

Like SI-7236 and SI-7237, the logic in
scala.actors.scheduler.ThreadPoolConfig.useForkJoin
(which resulted in a different thread pool implementation
being chosen) was causing random hangs in the test
concurrent-stream.scala when running on Avian.
Merge pull request #2506 from scalamacros/ticket/7461

c.typeCheck(silent = true) now suppresses ambiguous errors
Increase build.number to 2.10.3

Gets this branch ready for the next release in the 2.10.x series.
Merge pull request #2572 from JamesIry/2.10.3_build_number

Increase build.number to 2.10.3
SI-7499 Additional test case for SI-7319

From a duplicate ticket.
SI-3425 erasure crash with refinement members.

Checking that a refinement class symbol does not override
any symbols does mean it will have to be invoke reflectively;
but the converse is not true. It can override other symbols
and still have to be called reflectively, because the
overridden symbols may also be defined in refinement classes.

  scala> class Foo { type R1 <: { def x: Any } ; type R2 <: R1 { def x: Int }  }
  defined class Foo

  scala> typeOf[Foo].member(TypeName("R2")).info.member("x": TermName).overrideChain
  res1: List[$r.intp.global.Symbol] = List(method x, method x)

  scala> res1 filterNot (_.owner.isRefinementClass)
  res2: List[$r.intp.global.Symbol] = List()

And checking that "owner.info decl name == this" only works if
name is not overloaded.

So the logic is all in "isOnlyRefinementMember" now, and
let's hope that suffices for a while.
Added another test.

Probably overshot the mark a little.
SI-7502 removing non-existent element from ListMap returns same map.

Current imperative version constructs a new ListMap regardless of
the fact the map doesn't contain the element. Replace it with the
tail-recursive variant that conserves. Also replace some usages with
the invariant now held.
Cache the most recently created SubstTypeMap.

I discovered that a 1-element cache for SubstTypeMaps
gave a 75-90% hit rate.
SI-7473 Bad for expr crashes postfix

This commit makes building PostfixSelect robust against a bad pos
on its operand, which can happen if a bad for expression results
in an EmptyTree.
SI-7410 REPL uses improved tools.jar locator

The logic in partest for snooping around for tools.jar
is moved to PathResolver, and ILoop uses it from there.

If JAVA_HOME is toolless, check out java.home.

The use case was that Ubuntu installs with `java` at
version 6 and `javac` at version 7; it's easy to wind
up with JAVA_HOME pointing at the version 6 JRE, as
I discovered.  It's confusing when that happens.

In future, partest might run under 7 and fork tests
under 6, but those permutations are downstream.
PathResolver uses platform EOL to mkStrings
Avoid caching different types in TypeSymbol.

Try to prevent TypeSymbols from caching a different typeref
for tpe_* and typeConstructor if the symbol is monomorphic.
I find this undesirable:

  scala> AnyRefClass.tpe eq AnyRefClass.typeConstructor
  res0: Boolean = true

  scala> AnyRefClass.tpe eq AnyRefClass.typeConstructor
  res1: Boolean = false
Concision contribution.

We have lots of core classes for which we need not go through
the symbol to get the type:

  ObjectClass.tpe -> ObjectTpe
  AnyClass.tpe    -> AnyTpe

I updated everything to use the concise/direct version,
and eliminated a bunch of noise where places were calling
typeConstructor, erasedTypeRef, and other different-seeming methods
only to always wind up with the same type they would have received
from sym.tpe. There's only one Object type, before or after erasure,
with or without type arguments.

Calls to typeConstructor were especially damaging because (see
previous commit) it had a tendency to cache a different type than
the type one would find via other means. The two types would
compare =:=, but possibly not == and definitely not eq. (I still
don't understand what == is expected to do with types.)
SI-7497 Fix scala.util.Properties.isMac

It returned wrong values because it used the java.vendor
property instead of os.name.

See http://mail.openjdk.java.net/pipermail/macosx-port-dev/2012-November/005148.html
for the reason why we don't follow developer.apple.com/library/mac/#technotes/tn2002/tn2110.
SI-6138 Centralize and refine detection of `getClass` calls

`getClass` is special cased in the compiler; this is described
in in the comments on `Definitions.Any_getClass`.

Part of this happens in `Typer#stabilize`. This was trying to determine
if an Ident or Select node was a call to `getClass` by merits of the name
of the tree's symbol and by checking that the its type (if it was a
MethodType or PolyType) had no parameters in the primary parameter list.

Overloaded user defined `getClass` methods confused this check. In the
enclosed test case, the tree `definitions.this.getClass` had an
`OverloadedType`, and such types always report an empty list of `params`.

This commit:

  - changes `stabilize` to use `isGetClass`, rather than the
    homebrew check
  - changes `isGetClass` to consider a `Set[Symbol]` containing all
    `getClass` variants. This moves some similar code from `Erasure`
    to `Definitions`
  - keeps a fast negative path in `isGetClass` based on the symbol's name