BUG: Clip corr edge cases between -1.0 and 1.0
Closes #61120 

Clips correlation coefficient in `DataFrame.corr()` between `-1.0` and `1.0`

Adds `test_corr_within_bounds` to ensure coefficient within bounds

- [x] closes #61120 (Replace xxxx with the GitHub issue number)
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

I do not think `nancorr_spearman` requires this change because it computes the divisor by first ranking the raw data rather than using the raw data itself like `nancorr`. This results in a stable value for the divisor. In the case of `y = [1.35951, 1.3595100000000007]`, the divisor equals 0.5 for `nancorr_spearman` but equals almost 0 for `nancorr`. Added a whatnew note under "Notable Bug Fixes" Thanks again @j-hendricks  @j-hendricks I'm seeing different behavior, depending on whether missing values are present. Can you confirm whether the following behavior is expected?

At 83979d6a0c5a223bac2af8ef706c5ff8d432bcca

```python
In [50]: x = pd.DataFrame({"A": [1, 2, None, 4], "B": [2, 4, None, 9]})

In [51]: x.cov()
Out[51]:
     A    B
A  1.0  1.0
B  1.0  1.0

In [52]: x.dropna().cov()
Out[52]:
          A     B
A  2.333333   5.5
B  5.500000  13.0

In [53]: pd.__git_version__
Out[53]: '83979d6a0c5a223bac2af8ef706c5ff8d432bcca'
```

With 2.2.3:

```python
In [67]: x = pd.DataFrame({"A": [1, 2, None, 4], "B": [2, 4, None, 9]})

In [68]: x.cov()
Out[68]:
          A     B
A  2.333333   5.5
B  5.500000  13.0

In [69]: x.dropna().cov()
Out[69]:
          A     B
A  2.333333   5.5
B  5.500000  13.0

In [70]: pd.__version__
Out[70]: '2.2.3'
```

Depending on my digging in https://github.com/dask/dask/pull/11857, there might be some more differences, but this seemed to be the largest. It appears this clipping should have only happened if `cov=False`. @j-hendricks do you mind opening a follow up PR with this fix?