SI-1786 incorporate defined bounds in inference

Also fixes SI-5459.

Look, you don't have to redeclare the bounds, isn't it exciting?
For instance, there are eight places in JavaMirrors with this:

  jTypeVariable[_ <: GenericDeclaration]

After this code is in starr, those can look like this:

  jTypeVariable[_]

Since TypeVariable's definition looks like this:

  interface TypeVariable<D extends GenericDeclaration>

We already know that!
No bounds-driven inference for the named.

This is a variation on the previous commit which excludes
named type parameters, so this works

  def f(x: Class[_]) = x.foo.bar

But this does not:

  def f[T](x: Class[T]) = x.foo.bar

This seems undesirable to me, but I offer it in case it makes
the patch more attractive to others.
Merge pull request #2518 from paulp/issue/1786

SI-1786 incorporate defined bounds in inference