Add deprecation warning to lock class
SI-7704 Fix partest's test category selection

My recent changes to command line parsing in 6090709 broke partest's
functionality of picking test categories (e. g. --pos or --run).

The breakage was caused because scala.tools.cmd._ stored the command
line options with the `--` prefix, but TestKinds.standardKinds did not.
Add some explicit return types to s.t.c._
Clean up ConsoleRunner, --> returns Boolean ...

... not Unit now.
SI-7265 javaSpecVersion, adjust isJava... tests

Make this and related properties public, because they
are useful.

This change ought to have been committed at 2.11 and then
backported with restrictions, rather than vice-versa.

Note that they are defined in the order, version, vendor
and name, which is the order from the underlying javadoc.

It would be a neat feature of the PR validator, as previously
imagined, to run a "pending" test and then, on success and
merge, to move it automatically to the canonical suite.
Bug fix ! , if $color_opts is unset partest script does not work.
SI-7544 Interpolation message for %% literal

The new error text: "conversions must follow a splice; use %% for
literal %, %n for newline".

The error is emitted when % is not at the start of a part; only
the non-conversions %% and %n are allowed.

It would be nice if it were convenient to parse the part to see
what the user may have intended, but c'est l'erreur.
In tests, interpolation is no longer -Xperimental.
StringContext#checkLengths reports bad args count

Since interpolator args are of type Any, it's easy
to write s(args) instead of s(args: _*).  I wonder
if Xlint would have warned me about that.
Move map2Conserve to a new home, next to map2.
Make map2Conserve occupy constant stack space in spirit of SI-2411

I recently discovered a StackOverflowError, caused by this function:
https://gist.github.com/folone/7b2f2e2a16314ab28109
The circumstances are pretty extreme, still having a tail-recursive
function seems to be a good idea.
The function behaves the same way old function did (supported by tests),
which is not really how map2 behaves. I did not change this behavior to
not introduce any regression. I actually tried to make it behave like map2,
and it does introduce regression.
Par-Test split checks work again

Check files split into conditional blocks with partest flags
have been broken since the new diff regime.

For some reason, no one noticed.

The clever scheme to "filter the diff" instead of just filtering
the check file is abandoned as futile and unnecessary.

Fix java6 checkfile for ifdiff fix.
SI-7658 Prevent StackOverflowError in ScalaRunTime.stringOf
Remove unused private[scala] def ScalaRunTime.checkZip
SI-7729 Does Par-Test work?  Absolutely!

Testicolor just passed file arguments through; this commit does
either toAbsolute or getAbsoluteFile (depending on the File API
impedance mismatch) at ConsoleRunner (command line) and Runner
(ant supplies absolute paths, but in case sbt runner doesn't,
and who knows). It also sprinkles toAbsolute internally, where
it may be redundant. Do I mean redundant or redolent?

I noticed that my branch from last year relativized to test root
always; so this is one of those choices one commits to.

The point of breakage in this case was, if a path is not absolute,
use test root / path, which only works (of course) if the relative
path is relative to test root, which is no longer the case.

Because all paths are now calculated with respect to the test file
path, the "out" dir would change its relative path depending on
the invocation.
Log file is zapped before test run

Not all test configurations handle an existing log file.

In particular, kicking off javac will append to the log file
and always fail the test.

Don't even ask how I know that.
SI-7737 Regex matches Char

Enables Char extraction by regex.

```
val r = """(\p{Lower})""".r
"cat"(0) match { case r(x) => true }
val nc = """\p{Lower}""".r
"cat"(0) match { case nc() => true }
```
SI-7690 ghost error message fails compile

I won't even try to explain the error reporting code, because
it would have no basis in reality. However this change appears
to fix the symptom reported.
SI-7715 String inpatternation s"$_" for s"${_}"

In a pattern,

```
scala> implicit class RX(val sc: StringContext) {
     | def rx = sc.parts.mkString("(.+)").r }
defined class RX

scala> "2 by 4" match { case rx"$a by $_" => a }
res0: String = 2

scala> val rx"$_ by $b" = "2 by 4"
b: String = 4
```
Merge pull request #2764 from folone/master

Making map2Conserve occupy constant stack space in spirit of SI-2411.