Add variance back to Liskov combinators for 7.0.x

Sequel to #596, tested in the same way.

This backports 7cb90705b55454b245e34ad8ab7162be6cc674e6 (#546) from 7.1.x to 7.0.x.

**Source-incompatible change. Migration strategy**: Require `Leibniz.===` evidence instead of `Liskov.<~<`, or a higher-kinded type with a covariant position.  `Leibniz` can be lifted into invariant type constructors, which are the norm.  If that's not possible, use `@uncheckedVariance` as in `BindSyntax.scala` here.