SI-2577, SI-6860: annotation type inference.

This is less than ideal:

  scala> class Bippy[T] extends annotation.StaticAnnotation
  defined class Bippy

  scala> def f: Int @Bippy = 5
  f: Int @Bippy[T]

Turns out we can infer such types. Now it says:

  scala> def f: Int @Bippy = 5
  f: Int @Bippy[Nothing]

This should put to rest many an issue with parameterized
annotations.
SI-5182, no position on annotation error.

Now there's a position on the synthetic "value" Ident.
SI-6083, misleading annotation error message.

When an implicit conversion causes an apparently constant
argument not to be constant, show the conversion, not the
constant.
Added test for untested nested annotation restriction.
Renamed methods to be less ambiguous in intent.

isNamed    => isNamedArg
isIdentity => allArgsArePositional
nameOf     => nameOfNamedArg

Moved mkNamedArg into TreeGen.
Removing superfluous method parameters.

Adding a method parameter with a default argument which
deviates from the default at a single call site is a pretty
questionable tradeoff. Even more so when done twice.

Like sands through the hourglass, so go the parameters
of our method.
Cleaning up dummy applied types and friends.

Incorporates feedback from dealias/widen PR.
Add PolyType to Infer#normalize.

It arises when inferring the type of an overloaded call:

  def g(s: String): String = s
  def f: String = ???
  def f[C](c: C): String = g(f)

Also refined warning when isHKSubType is called with
arguments which very likely were never meant to be compared.
A very interesting checkfile update.

Surely signfiicant, but I haven't determined in what way.
Put back a method which sbt is using.

Good catch, ant target sbt.compile.
Make sure typed isn't called with an erroneous tree.

I can't see that it makes any difference, but this is
approximately the way it was before.
Merge pull request #1901 from paulp/pr/dealias-plus-annotations

dealiasing and annotations