Noise reduction + minor enhance in TreeCheckers.

Misc irrelevant work, which I can only offer as-is. It lowers
the noise in -Ycheck:* output and performs some common sense
chillaxes like not screaming ERROR IN INTERNAL CHECKING! WE'RE
ALL GOING TO DIE! when a tree doesn't hit all nine points at
the Jiffy Tree.

You can see some reasonably well reduced symbol flailing if
you run the included pending tests:

  test/partest --show-diff test/pending/pos/treecheckers

Example output,

Out of scope symbol reference {
      tree  TypeTree             Factory[Traversable]
  position  OffsetPosition       test/pending/pos/treecheckers/c5.scala:3
  with sym  ClassSymbol          Factory: Factory[CC]
   and tpe  ClassArgsTypeRef     Factory[Traversable]
   encl(1)  ModuleSymbol         object Test5
    ref to  AbstractTypeSymbol   X (<deferred> <param>)
}
Avoid spurious tree checker warning for higher order type params

TreeCheckers is trying to find references to a) local types
(term owned) or b) to type parameters from a trees that are
not ancestors of the a) term or b) type param owner. Such
references are ill-scoped and suggest that a tree has been
transplanted without proper substitution.

However, this check failed to account for higher order type
parameters, as seen in the spurious warning emitted by:

    test/pending/pos/treecheckers/c5.scala.
Merge pull request #10 from retronym/topic/tree-checker-higher-order-tparam

Avoid spurious tree checker warning for higher order type params
Merge pull request #2926 from paulp/pr/treecheckers

Noise reduction + minor enhance in TreeCheckers.