Address review findings (job 51)
Changes:
- Add mdtest for `global` as a resolution barrier preventing nonlocal type widening in enclosing scope
- Improve assert message in `place.rs` to accurately describe the `ExternallyModified` invariant instead of the old `unreachable!()` message
- Simplify redundant `matches!` + `let else` in `class.rs` attribute assignment filter into a single `let else` with a comment explaining which states are skipped
- Add comment in `record_nonlocal_modifications` clarifying that only symbols (simple names) are relevant since Python's `nonlocal` only applies to simple names
- Add comment explaining why `record_nonlocal_modifications` is only called for lazily-evaluated scopes (Python disallows `nonlocal` in comprehensions/generators)