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), like, apparently, a case class's
clone method (although I am not sure why they even need the type
parameter...).

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