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."
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