SI-5691 lint warning when a type parameter shadows an existing type.

This adds a new lint warning for when a class/method/type-member's
type parameter shadows an existing type: `-Xlint:type-parameter-shadow`.

It excludes type parameters of synthetic methods (the user can't
rename or remove those anyway), otherwise, for example, every case class
triggers the warning.

Also fixes a test that contained wrong java sources (that didn't even
compile...), discovered thanks to the warning.