Fix narrowing union types that include Self with isinstance (#14923)
Fix narrowing union types that include Self with isinstance (Fixes #14912).
The special case of bound type variables was not handled in function `covers_at_runtime` of module `subtypes`. So I added it and defined the test case `testNarrowSelfType`.