RegressionChain does not accept nans, when base_estimator does

### Describe the bug

XGBRegressors accepts nan values. Which is defined in the tag `force_all_finite='allow-nan`
But if define
```py
RegressorChain(XGBRegressor())
```
Then raises the error
```
 File "C:\\lib\site-packages\sklearn\multioutput.py", line 556, in fit
    X, Y = self._validate_data(X, Y, multi_output=True, accept_sparse=True,
  File "C:\\lib\site-packages\sklearn\base.py", line 581, in _validate_data
    X, y = check_X_y(X, y, **check_params)
  File "C:\\lib\site-packages\sklearn\utils\validation.py", line 964, in check_X_y
    X = check_array(
  File "C:\\lib\site-packages\sklearn\utils\validation.py", line 800, in check_array
    _assert_all_finite(array, allow_nan=force_all_finite == "allow-nan")
  File "C:\\lib\site-packages\sklearn\utils\validation.py", line 114, in _assert_all_finite
    raise ValueError(
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
```

 In file "C:\\lib\site-packages\sklearn\multioutput.py", line 556, in _BaseChain.fit, doing something like
```py
class _BaseChain(BaseEstimator, metaclass=ABCMeta):
(...)
def fit():
(...)
    allow_nan = self.base_estimator._get_tags()['allow_nan']
    force_all_finite = 'allow-nan' if allow_nan else True
    X, Y = self._validate_data(X, Y, multi_output=True, accept_sparse=True,
                                   force_all_finite=force_all_finite)
```` 
would solve the problem



### Steps/Code to Reproduce

import numpy as np
from sklearn.datasets import make_regression
from sklearn.multioutput import RegressorChain
from xgboost import XGBRegressor

model = RegressorChain(XGBRegressor())
scoring = 'neg_root_mean_squared_error'
X, y = make_regression(n_targets=2)
X[0, 0] = np.nan
model.fit(X, y)
print(model.score(X,y))


### Expected Results

`fit`works, and score = 0.9999

### Actual Results

```
 File "C:\\lib\site-packages\sklearn\multioutput.py", line 556, in fit
    X, Y = self._validate_data(X, Y, multi_output=True, accept_sparse=True,
  File "C:\\lib\site-packages\sklearn\base.py", line 581, in _validate_data
    X, y = check_X_y(X, y, **check_params)
  File "C:\\lib\site-packages\sklearn\utils\validation.py", line 964, in check_X_y
    X = check_array(
  File "C:\\lib\site-packages\sklearn\utils\validation.py", line 800, in check_array
    _assert_all_finite(array, allow_nan=force_all_finite == "allow-nan")
  File "C:\\lib\site-packages\sklearn\utils\validation.py", line 114, in _assert_all_finite
    raise ValueError(
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
```

### Versions

```shell
System:
    python: 3.9.9 (tags/v3.9.9:ccb0e6a, Nov 15 2021, 18:08:50) [MSC v.1929 64 bit (AMD64)]
executable: C:\MyProgramFiles\venv\ds-ltv\Scripts\python.exe
   machine: Windows-10-10.0.19043-SP0
Python dependencies:
          pip: 22.0.4
   setuptools: 57.0.0
      sklearn: 1.0.2
        numpy: 1.22.3
        scipy: 1.8.0
       Cython: None
       pandas: 1.4.2
   matplotlib: 3.5.1
       joblib: 1.1.0
threadpoolctl: 3.1.0
Built with OpenMP: True
```

COMMENT:
Facing the same issue: https://stackoverflow.com/questions/72187136/regressorchain-does-not-accept-nan-although-multioutputregressor-does?noredirect=1#comment127554122_72187136

Labels: Bug, module:multioutput