Harden `transform.gpu.map_nested_forall_to_threads` to reject non-positive block/grid sizes and handle zero-iteration dimensions gracefully, preventing assertion failures in `computeProduct`. Fix `getConstantIntValues` to return `std::nullopt` if any element is non-constant, avoiding invalid zero placeholders. Fixes: https://github.com/llvm/llvm-project/issues/73562