BUG-24971 copying blocks also considers ndim
- [X] closes #24971 
- [X] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

The following gives a series containing [1] instead of 1
```
>>> pd.Series(pd.Categorical('A', categories=['A', 'B'])).replace({'A': 1, 'B': 2})
0    [1]
dtype: object
```
This bug occurs because in the process of copying the original categorical block (which is needed as the operation is not inplace), the constructor class for the new object defaults to `ObjectBlock`, whose constructor has a default `ndim` of 2. This PR alters the block `copy` function to specify that the newly constructed block should have the same `ndim` as the block being copied.