SI-7985 Allow qualified type argument in patterns

We were considering the lower case `s` in `case _: Array[scala.Int]`
as a sign that we were dealing with a type variable pattern.

Now, we only do this if a lookahead confirms the absence of a the `.`
SI-7985 Allow projection of lower-cased prefix as pattern type arg

As per the last commit, tighten up the interpretation of a lower
cased identifier meaning that we're looking at a type variable.