Fixing glb/lub of TypeBounds

Need to take variances into account when forming & or | of bounds. Achieved by moving code from distributeAnd/Or to TypeBounds &/|.
Check that inferred parent classes are feasible.
Fix problem when handling structural types without a nominal parent type.

We need to use Object as parent then, but this was forgotten.