SI-7872 Plug a variance exploit in refinement types

Refinement types are collapsed to a TypeTree with an original
during type checking; this was enough to evade variance validation
in refchecks.

This commit:

  - validates the original of `TypeTree`s in refchecks
  - changes VarianceValidator to recurse into:
    - the originals of `TypeTree`s
    - `TypTree` (to cover, e.g. `CompoundTypeTree` / `SelectFromTypeTree`)

It also finds an unreported variance violation in an existing
test case, variances.scala. This looks to be legitimate.
Merge pull request #3178 from retronym/ticket/7872

SI-7872 Plug a variance exploit in refinement types