BUG: DTI/TDI/PI.where accepting incorrectly-typed NaTs
- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

In addition to the bug in the title, this makes DTI accept datetime/dt64, TDI accept timedelta/td64, and PI accept Period.  This brings these into closer alignment with the other methods, which we ultimately want to make as consistent as possible.

