Fix/pool negative pad validation (#32076)
This pull request strengthens validation for padding values in pooling
operations to ensure they are non-negative, preventing invalid
configurations and potential runtime errors. It also adds unit tests to
verify that negative padding values are correctly rejected, both at the
ONNX operator level and in the underlying MLAS pooling implementation.
Validation improvements:
* Added explicit checks in `pool_attributes.h` to enforce that all
padding values (`pads`) are non-negative when `auto_pad` is not set,
raising an error if this condition is violated.
* Updated `pooling.cpp` to throw a `std::invalid_argument` exception if
any padding value is negative, providing an additional safeguard at the
MLAS pooling layer.
Testing enhancements:
* Added new unit tests in `pool_op_test.cc` to verify that negative
padding values cause the expected errors, both for the ONNX MaxPool
operator and for the MLAS pooling backend.