API: silent overflow in Series(bigints, dtype="int8")
- [ ] closes #xxxx
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

This is made complicated by a) #40110 and b) MaskedArray behavior, which i need to check but may be changeable.
So the current behaviour is to wrap around, which follows numpy:

```
In [5]: pd.Series([1, 1000], dtype="int8")
Out[5]: 
0     1
1   -24
dtype: int8

In [6]: np.array([1, 1000], dtype="int8")
Out[6]: array([  1, -24], dtype=int8)
```

Personally, I think it would be good to be more strict (and only allow safe casting by default) in the constructors, as you are doing in this PR. 
But I think this could (relatively easily) be done with a deprecation warning that it will raise in the future? > But I think this could (relatively easily) be done with a deprecation warning that it will raise in the future?

It could, but leaving it until 2.0 will block most remaining simplification of the construction/casting code, which is bound to uncover more bugs.

We do explicitly catch OverflowError when passing negative integers and specifying a uint dtype, so there's a precedent for not matching numpy's behavior. mothballing to clear the queue