BUG: value_counts may raise OutOfBoundsDatetime
- [x] closes #13663
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

The root cause looks normal `Index` raises `OutOfBoudsDatetime`. I think it should be coerced to `object` dtype because user specifies no dtype.

```
pd.Index([datetime(9999, 1, 1)])
# on current master
# OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 9999-01-01 00:00:00

# this PR
Index([9999-01-01 00:00:00], dtype='object')
```

## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13772?src=pr) is 84.57% (diff: 100%)

> No coverage report found for **master** at b60e42b.
> 
> Powered by [Codecov](https://codecov.io?src=pr). Last update [b60e42b...533bba3](https://codecov.io/gh/pydata/pandas/compare/b60e42b02040624f319cadd60a99fe50eb62d62e...533bba364cd41ad9ebcd4831dff30d853d2b550e?src=pr)
 Gave a quick look, everything looks good.

Slightly OT, do we have a convention on `import datetime` vs. `from datetime import datetime`? You changed it to the second version, which seems to be slightly more common in the codebase? Might be nice to standardize that everywhere.
 thanks @sinhrks 

yeah @TomAugspurger there is a bit of differences on import, though generally not back; we _mostly_ `from datetime import datetime` which is the correct idiom here. Could change if someone wants to put in the effort :>

pls make an issue.
 yeah, `from datetime import datetime` looks commonto meet with < 80 chars. Though i don't have strong opinion about it.
