Fix ValueError when matching generic dtype instances (UIntDtype, IntDtype) to specific Zarr integer data types on Windows.
When numpy's bitwise operations produce generic unsigned/signed integer dtype instances instead of specifically-sized ones (e.g., UIntDtype instead of UInt32DType), the dtype matching logic now correctly identifies and handles these cases. This resolves the issue where zarr.array(np.array([1, 2], dtype=np.uint32) & 1) would fail with "No Zarr data type found that matches dtype" on Windows.