changes the order of whitebox typechecks. yes, again.

My first attempt at SI-6992 was about having whitebox expansions first
typecheck against outerPt and only then verify that the result is compatible
with innerPt.

That was a nice try, but soon after it went live in 2.11.0-M8, we've got
multiple reports with problems - both shapeless and then in a week specs2
started having issues with their whitebox macros.

In shapeless, typecheck against outerPt screwed up type inference, which
was more or less fixable by explicit type annotations, so I decided to
wait a bit before jumping to conclusions.

However, in specs2 the problem was more insidious. After being typechecked
against outerPt, expansions were being implicitly converted to a type
that became incompatible with innerPt. This revealed a fatal flaw of the
implemented approach - if allowed to typecheck against outerPt first,
whitebox macros could never be robust.

Now realizing that "outerPt > innerPt" doesn't work, I nevertheless wasn't
looking forward to rolling that back to "innerPt > outerPt", because that
would revive SI-6992 and SI-8048 that are highly unintuitive, especially
the latter one.

Therefore, this commit combines the permissiveness of "... > innerPt"
approaches with the robustness of "innerPt > outerPt", introducing
"WildcardType > innerPt > outerPt".
SI-8226 Deduplicate Scala's Tokens and JavaTokens
SI-8167 readLine shold flush output before reading input

As reported on scala-user:

> Using `scala.Predef.readLine(text: String, args: Any*)`
> on Windows causes strange behavior. If I am leaving some
> part of `text` unforced to be flushed (say, "---\nEnter new
>  expression >") then "Enter new expression >" flushed only
> after Enter press. Still, it works fine on Ubuntu and (seems like)
> on MacOS.
>
> My workaround is to force `java.lang.System.out` (that readLine
> depends on to write welcome string) to flush output like
> "---\nEnter new expression >\n".
SI-5994 battling implicits for String.lines

Deprecated ProcessBuilder's lines method and renamed it lineStream.

stream was another possibility, but that seemed more likely to cause conflicts.

streaming was also tried, but feedback was in favor of lineStream.

Also updated tutorial in ProcessBuilder.

I am sure this will break some tests, but because of the name conflict it's hard to be sure where they are.  So Jenkins gets to find the problems for me.

Changed name to lineStream.
Merge pull request #3504 from gkossakowski/readline-flush

 readLine shold flush output before reading input
Merge pull request #3456 from soc/SI-8226

SI-8226 Deduplicate JavaTokens/ScalaTokens
Tweak parser entry point for pq

Previously pq used pattern1 which required parens to be used in
alternative pattern. This commit tweaks it to allow pq"a | b"
syntax. Also adds some tests for alternative syntax.
Merge pull request #3505 from densh/topic/pq-entry

Tweak parser entry point for pq""
Merge pull request #3495 from xeno-by/ticket/8209

changes the order of whitebox typechecks. yes, again.
Add a great test case.

Created to convince moors that certain code should compile, it
wound up flushing out some quite nutty behavior. Some day this
will compile rather than having an 11-failure checkfile.
Merge pull request #3508 from paulp/pr/great-test

Add a great test case for SI-764, which hopefully one day will compile.
Merge pull request #3454 from Ichoran/issue/5994

SI-5994 battling implicits for String.lines