refactor parser entry points and extract a few methods out

This commit contains three logical changes:

1. Split `templateStatSeq` into two methods as we need more reliable
   parsing of template body alone for new `parseStats` entry point.

2. Add new parser entry point called `parseStats` which is aimed towards
   use in tools that require parsing of Scala code that can be written
   inside of a template.

   Such functionality is required for parsing lines in repl, parsing
   code through toolbox, parsing and running scala scripts and lastly
   for quasiquotes. All of them are refactored to use this very method
   in the next commits.

   A new method called `templateStatsCompat` is also added to make this
   commit pass the tests but it's a temporary hack that will be removed
   in next commit in favor of `parseStats`.

3. Extract out a few methods like `isCaseDefStart`, `expectedMsgTemplate`
   and `parseRule`. These are needed to override parser behaviour in
   updated quasiquotes parser (see next commits).
refactor repl to use new new parser entry point

This commit refactors repl to use `parseStats` entry point and
streamlines hacky error handling that was previously used to
encode errors that happen during parsing.
SI-7331 remove all the wrapping code from toolbox

Change toolbox parsing to use `parseStats` parser entry point
instead of current code-wrappign technique that makes positions
much less useful to end users.

There is also no need to create a compiler `Run` for parsing.
SI-6843 well-positioned syntax errors for quasiquotes

This is achieved in a following way:

1. Similarly to toolbox quasiquotes can go away with wrapping for
   parsing purpose after introduction of `parseStats` and `parseRule`
   entry points.

2. In case of syntax error quasiquote computes equivalent corresponding
   position in the source code with the help of `corrrespondingPosition`
   mapper which relies on position data collected into `posMap` during
   code generation.
Merge pull request #2829 from adriaanm/ticket-7014

SI-7014 Annot arg may refer to annotated class's member
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.
Merge pull request #2780 from lcycon/lcycon-deprecate_lock

Add deprecation warning to scala.concurrent.Lock class
Merge pull request #2791 from som-snytt/issue/7265-2.11

SI-7265 javaSpecVersion, adjust isJava... tests for 2.11
Merge pull request #2819 from som-snytt/issue/regextract-char

SI-7737 Regex matches Char
[nomaster] macro expansions are now auto-duplicated

The fix still requires macro developers to be careful about sharing trees
by references, because attributed DefTrees will still bring trouble.

However this is an improvement, because it doesn't make matters worse
and automatically fixes situations similar to one in the test.

A much more thorough discussion with a number of open questions left:
http://groups.google.com/group/scala-internals/browse_thread/thread/492560d941b315cc

Was fixed ages ago in master in one of the paradise backports.
Never got to 2.10.x, but it's very useful, so I'm backporting it now.
SI-7681 Remove scala.tools.nsc.io.DaemonThreadFactory
Clean up imports in s.t.n.interpreter.IMain
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-7752 Don't disambiguate type parameters of overloaded alts

These are passed through from `InferencerContextErrors#applyErrorMsg`
to `withDisambiguation` as the `locals` parameter, which is promptly
ignored. This looks to be an unintended change in 39938bcc299.

Without this patch, the enclosed test case enters a pathalogical
disambiguation session, that not only flirts with unpleasant big-O
complexities, but also flails about appending "(in method foo)"
only to find that *all* occurences of the same-named type parameter
come from some method named "foo".

    [snipping error message 40 seconds in the making]
    method foo), O(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo), P(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo), Q(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo), R(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo), S(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo), T, U(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo)(in method foo), V)
     cannot be applied to (Int)
      foo((1))
SI-7624 Fix -feature warnings and build with -feature

I added a language.existential import to LazyCombiner.scala which
should not be necessary, but causes a spurious warning otherwise:

    scala/src/library/scala/collection/parallel/mutable/LazyCombiner.scala:33:
    warning: the existential type
        scala.collection.parallel.mutable.LazyCombiner[_$1,_$2,_$3] forSome {
          type _$1; type _$2; type _$3 <: scala.collection.generic.Growable[_$1] with scala.collection.generic.Sizing },
    which cannot be expressed by wildcards, should be enabled by making the implicit value scala.language.existentials visible.
    if (other.isInstanceOf[LazyCombiner[_, _, _]]) {
                       ^

I created ticket SI-7750 to track this issue.
Formatting fixes for AnyVal

The files are not regenerated here, because additional fixes will
follow in the next commit.
SI-7624 Fix -Xlint warnings in AnyVal-related code

The changes are actually pretty small:
scala.language.implicitConversions is moved around so that it is only
emitted to the source file if there is an actual implicit conversion.
The rest of the diff are mostly the new generated source files
reflecting that change.
SI-7624 Fix a few remaining -Xlint warnings ...
in various places. This includes actors, compiler (mostly some new
macro parts) continuations, partest, scaladoc, scalap.