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
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-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
SI-7509 Avoid crasher as erronous args flow through NamesDefaults

The fix for SI-7238 caused this regression.

This commit marks taints whole Apply with an ErrorType if it
has an erroneous argument, so as to stop a later crash trying
to further process the tree.
Merge pull request #2559 from soc/SI-7497

SI-7497 Fix scala.util.Properties.isMac
SI-7486 Regressions in implicit search.

Revert e86832d7e8 and dd33e280e2.
SI-7421 remove unneeded extra-attachement in maven deploy
Merge pull request #2595 from adriaanm/backport-pr-2450

SI-7421 remove unneeded extra-attachement in maven deploy
Merge pull request #2588 from retronym/ticket/7509

SI-7509 Avoid crasher as erronous args flow through NamesDefaults
Temporary reversion of a bit of d8b96bb858.

If I reverse these few lines, I can rebase miguel's
pull request cleanly; if I don't, git thinks there are
enough merge conflicts to start a war. Something is
suboptimal in that algorithm.
warn about uninitialized reads (in constructors), self-contained check

The check in question relies on helper maps and methods that don't
belong outside that check. This commit encapsulates those helpers into
the newly added `checkUninitializedReads()` , thus uncluttering
`transformClassTemplate()`
handling AnyVal special case early on to simplify logic afterwards

This way the contract of `transformClassTemplate()` can focus on
non-AnyVal cases, which are more regular from the perspective of
transforming their templates in the constructors phase.