Make widening ops more systematic & complete

1) strip TypeVars wehere necessary before widening
2) allow the combination of widening and dealiasing, in any order.
Comments and some polishing for PatternMatcher