BUG GH16983 fix df.where with extension dtypes
- [ ] closes #16983???
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

The referenced issue showcases two bugs. I was not able to replicate the first one, but I tracked down the cause of the ndim ValueError in the second example. An ExtensionBlock passed to `df.where` used to be unpacked [here](https://github.com/pandas-dev/pandas/blob/defa8a8ed6f627310500388a477186bed995fef1/pandas/core/computation/expressions.py#L126-128) into a 1D array while normal blocks are unpacked earlier [here](https://github.com/pandas-dev/pandas/blob/defa8a8ed6f627310500388a477186bed995fef1/pandas/core/internals/blocks.py#L1343) into a 2D nx1 array.