Fix unchecked warning.

Sorry, my schooling in warning suppression was deficient.
Taught -Xlint about @implicitNotFound.

And also about what a compiler identifier with a $ is likely
to look like. So it can stop burying me in warnings about missing
String interpolators which aren't so missing.
Eliminate a pile of -Xlint warnings.

Some unused private code, unused imports, and points where
an extra pair of parentheses is necessary for scalac to have
confidence in our intentions.
Eliminated the accumulated feature warnings.

No, this isn't busywork, how dare you suggest
such a thing. I intend my tombstone to say

           HERE LIES EXTEMPORE,
  WHO ELIMINATED A LOT OF SIP-18 WARNINGS
             REST IN PEACE
Added orElse to Type.

Tree and Symbol each have the analogous method, so consistency
calls along with utility for putting it on Type.
Added ensureFullyDefined.

Obvious fusion of "isFullyDefined" and "makeFullyDefined".
Simplify some checks in Refchecks.

Same result, simpler expression.
Minor overhaul of lub-producing typer methods.

There were a number of inefficiencies and unnecessary
indirections in these methods. I beat them into better shape.
Some highlights:

 - eliminated ptOrLub and similar. We must do something to
   suppress peoples' urge to tack a Boolean onto another method:
   these methods returned (Type, Boolean) and in addition to
   being horribly inefficient, it's vastly harder to follow the
   logic. Anything which can be written with a Boolean parameter
   or multi-value return can probably be written without the
   Boolean parameter and/or the multi-value return.

 - eliminated all the vars in the lub producing methods.
   Again, it's just a lot easier to understand code when I
   don't have to keep scanning up and down to see where and
   how previously declared names are being changed midstream.

 - added "sameWeakLubAsLub", which is the bit of information
   which was being tacked onto ptOrLub. This lets them all find
   out in advance whether the lub result implies further tree
   adaptation is necessary.
Merge branch 'master' into pr/warning-cleanup

Conflicts:
	src/compiler/scala/tools/nsc/typechecker/Contexts.scala
Merge pull request #2437 from paulp/pr/warning-cleanup

Quieting down a bunch of warnings.
Merge pull request #2436 from paulp/pr/lub-production

     Minor overhaul of lub-producing typer methods.