Porting akka future tests.

Fixed a bug in Future.zip.
Fixed a bug with setting execution contexts.

Ported most of the future tests.
Add promises tests.
Merge branch 'master' into feature/future-compat
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.
Workaround for scaladoc failure.

Addressing this little fellow:

21:40:22   [scaladoc] src/library/scala/collection/TraversableOnce.scala:382: error: missing parameter type for expanded function
21:40:22   [scaladoc] The argument types of an anonymous function must be fully known. (SLS 8.5)
21:40:22   [scaladoc] Expected type was: _[?] => Coll[A]
21:40:22   [scaladoc]       case xs: generic.GenericTraversableTemplate[_, _] => xs.genericBuilder mapResult {
21:40:22   [scaladoc]                                                                                        ^
tpe -> tpeHK here and there.

Review by @moors.
Fixs for reflection and getSimpleName.

Since getSimpleName will be crashing us indefinitely, took the
expedient route and wrapped the call.
Resolve merge conflicts