BUG: catch out-of-bounds datetime64 in Series/DataFrame constructor
- [x] closes https://github.com/pandas-dev/pandas/issues/26206
- [ ] tests added / passed
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

TODO: Need to add a whatsnew and test for DataFrame.

Question:

I am now letting this raise an error. But, an alternative could be to return an object array (by simply removing the `except OutOfBoundsDatetime: raise`, as the code below that fall backs to object array if no `dtype` is specified. 

This would be more consistent with if it is not an array but list of scalars:

```
In [5]: a = np.array(['2262-04-12'], dtype='datetime64[s]')

In [6]: pd.Series(a)   # now raising on this PR
...
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2262-04-12 00:00:00

In [7]: pd.Series([a[0]])    # already falling back to object array on master
Out[7]: 
0    2262-04-12T00:00:00
dtype: object
```

That is somewhat the general logic of the `_try_cast`. Of course, if you specify the required dtype explicitly, you should still get an error (which is actually also a bug on master, I see now).

However, that would be inconsistent with the current `pd.Index` behaviour, which raises when passing out of bounds datetime64 (but also returns object dtype with list of datetime64 scalars)

cc @jbrockmendel @mroeschke 
