[mlir][shape] Fix crash in FromExtentsOp::fold with poison operands (#178844)
## Summary
- Fix assertion failure in `shape.from_extents` fold when operands
include `ub.poison`
- The fold assumed all non null attributes were `IntegerAttr`, but
poison produces a different attribute type
- Use `dyn_cast_if_present` to safely handle non integer attributes
Fixes #178820
## Test plan
- Added regression test `@from_extents_poison` in canonicalize.mlir