Improve numpy version management
Starting with numpy >= 1.25, the ABI is backward compatible so that the client libraries can be compiled against the newest available version (and even must be compiled against numpy >= 2.0 to support this new major version), see https://numpy.org/devdocs/dev/depending_on_numpy.html#build-time-dependency.
As numpy >= 1.25 doesn't support Python versions < 3.9, use https://github.com/scipy/oldest-supported-numpy/ for older Python versions.