BUG: #12815 Always use np.nan for missing values of object dtypes
- [x] closes #12815
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Handles the issue of unstacked object columns filling missing values with `None` instead of `np.nan` by modifying `pd.core.dtypes.cast.maybe_promote()` to use a `fill_value` of `np.nan` (or `pd.NaT`) when the original `fill_value` is `None`.

Let me know if you'd like me to clarify anything!