Add support for variance.

This commit finally adds support for variance annotations on type lambda
parameters. This was the last piece of type projection syntax which
kind-projector didn't support.

There are three ways to do this:

  Either[+_, Int]
  Lambda[`+A` => Either[A, Int]]
  Lambda[+[A] => Either[A, Int]]

It's possible we will deprecate one of the lambda forms if there is broad
agreement, but right now neither one is obviously better than the other.