SI-8107: Add Regex.quote
SI-8107: Use Regex.quote
Variance annotations printing

def printTypeParams is modified. Tests are updated.
val showOuterTests is removed

val showOuterTests wasn't used in Printers
toCode is added to Printers

1. Printers API is updated (def toCode)
2. ParsedTreePrinter is added to internal.Printers. ParsedTreePrinter generates the code for passed unattributed trees.
Generated code can be later compiled by scalac retaining the same meaning.
Tests for ParsedTreePrinter
Printers code refactoring and cleanup
Annotated trees processing is modified

1. Problem with multiple parameter lists in annotations is resolved
2. Tests for Annotated trees are added
Code cleanup based on pull request comments
SI-8015 Count lines by EOLs

Source lines were counted by "line break chars", including FF.
Clients of `pos.line` seem to all expect the ordinary line num,
so that is what they get.

Unicode processing now precedes line ending processing.
SI-8015 Unprintables in messages

The line content to display should include the whole line,
inclusive of embedded line breaks, and any control chars
should be displayed in unicode escape.
SI-8015 Carat => Caret

Just a diamond in the rough.

Wikipedia warns against confusing it with "carrot."

The first word should really be pronounced as the garage phrase,
"Where's the car at?" and the second like "beret."
SI-8035 Deprecate automatic () insertion in argument lists

This promotes the () insertion warning from -Ywarn-adapted-args to a
deprecation warning. -Xfuture tunrs it into a compiler error.

Auto tupling remains unchanged for now.

The tests have been fixed the following way:
- Warnings caused by general sloppiness (Try(), Future(), ...) have been
  fixed.
- Warnings which raise interesting questions (x == (), ...) received an
  updated checkfile for now.
toCode renamed to showCode
SI-8015 Refactor per code review

Make an obscure private def local and rename it usefully.

If you really must have similar functions in the API
(to detect line breaks and EOL), at least make them DRY.
SI-8081 unzip/unzip3 return wrong static type when applied to Arrays

Added unzip and unzip3 methods to ArrayOps so that we get proper return
values.  (No tests due to unfavorable effort/reward ratio for an ongoing
test of something so simple.)
SI-8146 Pending test, diagnosis for bug in decidability of <:<
SI-8146 Test cases for typechecking decidability

Taken from "On Decidability of Nominal Subtyping with Variance"
(Pierce, Kennedy), which was implemented in 152563b.

Part of the implementation (SubTypePair) will be changed in the
following commit to fix the non-deterministic errors typechecking
heavily nested types involving aliases or annotations.
SI-8146 Fix non-deterministic <:< for deeply nested types

In the interests of keeping subtyping decidable [1], 152563b
added some bookkeeping to `isSubType` to detect cycles.

However, this was based on a hash set containing instances of
`SubTypePair`, and that class had inconsistencies between its
`hashCode` (in terms of `Type#hashCode`) and `equals`
(in terms of `=:=`).

This inconsistency can be seen in:

    scala> trait C { def apply: (Int @unchecked) }
    defined trait C

    scala> val intUnchecked = typeOf[C].decls.head.info.finalResultType
    intUnchecked: $r.intp.global.Type = Int @unchecked

    scala> val p1 = new SubTypePair(intUnchecked, intUnchecked)
    p1: $r.intp.global.SubTypePair = Int @unchecked <:<? Int @unchecked

    scala> val p2 = new SubTypePair(intUnchecked.withoutAnnotations, intUnchecked.withoutAnnotations)
    p2: $r.intp.global.SubTypePair = Int <:<? Int

    scala> p1 == p2
    res0: Boolean = true

    scala> p1.hashCode == p2.hashCode
    res1: Boolean = false

This commit switches to using `Type#==`, by way of the standard
case class equality.

The risk here is that you could find a subtyping computation that
progresses in such a manner that we don't detect the cycle. It would
need to produce an infinite stream of representations for types that
were `=:=` but not `==`. If that happened, we'd fail to terminate,
rather than judging the relationship as `false`.

[1] http://research.microsoft.com/pubs/64041/fool2007.pdf
Implements specialized subsetOf for HashSet

Fixes SI-7326. This also adds a basic test for subsetOf that was missing before.