moves compileTimeOnly to scala-library

This is the notion that's come to be universally useful, so I suggest
we promote it to be universally accessible.

Note that the attached test incorrectly fails to report errors for
definitions coming from the empty package and for annotations. These
are bugs, and they are fixed in subsequent commits of this pull request.
marks Expr.splice and Expr.value with @compileTimeOnly

Now that @compileTimeOnly is part of the standard library, why don't
we use it within the standard library.
@compileTimeOnly now works for annotations

http://docs.scala-lang.org/overviews/macros/annotations.html
say sincere "thank you!".
@compileTimeOnly now works for symbols from the empty package

Looks like we've got the entire language covered now.
SI-1980 A lint warning for by-name parameters in right assoc methods

The desugaring of right associative calls happens in the parser. This
eagerly evaluates the arguments (to preserve left-to-right evaluation
order the arguments are evaluated before the qualifier).

This is pretty surprising if the method being called has a by-name
parameter in the first parameter section.

This commit adds a warning under -Xlint when defining such a method.

The relevent spec snippets:

> SLS 4.6.1 says that call-by-name argument "is not evaluated at the point of function application, but instead is evaluated at each use within the function".
>
> But 6.12.3 offers:
> "If op is right- associative, the same operation is interpreted as { val x=e1; e2.op(x ) }, where x is a fresh name."
Move partest to https://github.com/scala/scala-partest

As partest is now resolved from maven, `test/partest` uses `ant test.suite.init`
to determine the classpath (serialized to build/pack/partest.properties)
that's necessary to run `scala.tools.partest.nest.ConsoleRunner`.

Thus, partest gets exactly the same classpath, whether run from
the command line through `test/partest` or via `ant test`.

The version of partest we're using is specified by
properties defined in versions.properties (formerly `starr.number`).

Currently, we're using:

```
scala.binary.version=2.11.0-M4
partest.version.number=1.0-RC3
```

NOTES:
  - The version of Scala being tested must be backwards binary compatible with
    the version of Scala that was used to compile partest.
  - Once 2.11 goes final, `scala.binary.version=2.11`, and `starr.version=2.11.0`.
  - Need scalacheck on classpath for test/partest scalacheck tests.
  - Removed atrophied ant tests (haven't been run/changed for at least two years
    I checked 81d659141a as a "random" sample).
  - Removed scalacheck. It's resolved as a partest dependency.
  - For now, use a locally built scalap
  - Kept the trace macro in the main repo (partest-extras)
  - New targets for faster pr validation: test-core-opt, test-stab-opt
  - Reused partest eclipse/intellij project to partest-extras
    (note: the partest dependency is hard-coded)
Merge pull request #2851 from adriaanm/modularize

Modularize partest
Use scala-partest 1.0-RC4

RC3 had a binary incompatibility that led to a crash in parsing options,
due to:
- https://github.com/scala/scala-partest/commit/9ff138ab4b
- https://github.com/scala/scala/commit/2b1563fa74

Also added sonatype as a repo for resolving partest,
so we don't have to wait for artifacts to synch to maven central.
Merge pull request #2862 from adriaanm/partest-1.0-RC4

Use scala-partest 1.0-RC4
Merge pull request #2810 from xeno-by/topic/compile-time-only

@compileTimeOnly: moved to scala-library.jar, got some fixes
Merge pull request #2852 from retronym/ticket/1980-warning

SI-1980 A lint warning for by-name parameters in right assoc methods