BUG/DEPR: combine dtype fixes
- [x] closes #7630, closes #10567 (fix `combine_first` dtype)
- [x] closes #13947 (`_find_common_type` to support extension types)
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry
- `_find_common_type` also needs to handle numpy datetimelike to be compat with pandas because:

```
np.find_common_type([np.dtype('datetime64[ns]'), np.dtype('datetime64[ns]')], [])
# dtype('O')
```
- another `comibine_first` related issue  #7509 is NOT fixed because it is related to filling with `align`
