Porting akka future tests.

Fixed a bug in Future.zip.
Fixed `Setting.enabling` to properly disable dependent settings when the original setting is set to `false`.

This can be witnessed in the IDE, when explicitly setting the `-optimize` flag to false leads to setting all the dependent flags to true (`-Yinline`, `-Ydce`, `-Ycloselim`).
Presentation Compiler tests for visibility of members.

Removed some unneeded indirection in the testing framework.
Fixed a bug with setting execution contexts.

Ported most of the future tests.
Add promises tests.
Merge branch 'master' into feature/future-compat
Merge commit 'refs/pull/452/head'; commit 'refs/pull/453/head' into develop
Optimization of Predef implicits.

All those wildcards in a default-scoped implicit are expensive,
they each lead to a typevar on every search.  Restructured the
Tuple2/Tuple3 Zipped classes, they're better this way anyway.
This also gets all that Tuple[23] code out of genprod.
De-duplication in Contexts.

Friends don't let friends cut and paste.
Merge branch 'apr30-checkin' of /scala/trunk into develop
Merge branch 'master' into feature/future-compat
Widen types in signatures of Future companion methods, refactor OnceCanBuildFrom.

Removed the implicit modifier on the OnceCanBuildFrom, as we don't
support implicit classes with zero arguments.

Added an implicit OnceCanBuildFrom method.

The idea behind OnceCanBuildFrom is for it to be used by methods which
construct collections, but are defined outside of collection classes.
OnceCanBuildFrom so far worked only for objects of type TraversableOnce:

    shuffle(List(1, 2, 3).iterator: TraversableOnce[Int])

but this used to result in an implicit resolution error:

    shuffle(List(1, 2, 3).iterator)

because after the type parameter M for `shuffle` was inferred to Iterator, no implicit
of type CanBuildFrom[Iterator[_], A, Iterator[A]] could be found.

Introduced another CanBuildFrom to the Iterator companion object.

Modified Future tests appropriately.
Refactor OnceCanBuildFrom to check the collection type.

The builder is now instantiated as an iterator builder only
if a generic builder cannot be found on the collection that
requested the builder.

Reason - we want this behaviour:

scala> scala.util.Random.shuffle(List(1, 2, 3): collection.TraversableOnce[Int])
res0: scala.collection.TraversableOnce[Int] = List(3, 1, 2)

instead of this one:

scala> scala.util.Random.shuffle(List(1, 2, 3): collection.TraversableOnce[Int])
res0: scala.collection.TraversableOnce[Int] = non-empty iterator

which may lead to nasty surprises.

Alternately, to avoid pattern-matching in OnceCanBuildFrom.apply, we
could mix in GenericTraversableTemplate-related functionaly into
TraversableOnce, but this may become too complicated.
Upgrade jQuery from 1.4.2 to 1.7.2

jQuery 1.4.2 uses event.layerX and event.layerY but these are
deprecated and WebKit logs a lot of warnings.

Additionally jquery.layout 1.3.0 RC 29.3 doesn't work correctly
with jQuery 1.7.2, then we have to upgrade it to 1.3.0 RC 30.5.

http://bugs.jquery.com/ticket/10531
Refactor Unsafe related stuff in scala.concurrent.
Merge commit 'refs/pull/456/head' into develop
A little clarity for AddInterfaces.

And a couple conveniences elsewhere.
Fixes #SI-5578.
ResetAttrs shouldn't be side-effecting on the original tree,
since it can lead to NPEs in erroneous trees (or maybe even for valid ones?).
Review by @odersky

(Patch by plocinic, applied without his complicity by extempore)
Hackaround for people who like to instantiate the uninstantiable.

Closes SI-5666 again.

(I don't have the least clue how I'm supposed to issue the error.)
Look at all the Strings which no longer are.

  // and a few dozen along the same lines
  lazy val SeqModule = requiredModule[scala.collection.Seq.type]

With fewer Strings, all things are possible.