Steps per epoch clipping
fixes #58966 

If the `steps_per_epoch` > len(dataset) in `model.fit()` method, training and validation stops prematurely. To avoid `StopIteration` error, clipping the value of `steps_per_epoch` to the maximum value possible is proposed.  

In the current implementation, the `steps_per_epoch` is being inferred by [`DataHandler.infer_steps`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/engine/data_adapter.py#LL1311C5-L1311C5) method.

> The code blocks below are just for highlighting the major changes proposed and do not show the entire patch.
Current Implementation
```python
if steps is not None:
      return steps
```

Proposed Implementation
```python
if steps is not None:
      return min(steps, len(dataset))
```

