BUG: Raise when casting infinity to int
- [x] tests added / passed
- [x] passes `black pandas`
- [x] whatsnew entry

Raises a `ValueError` when attempting to cast a `Float64Index` with infinite values to a (non-`ExtensionArray`) integer dtype.  Currently this returns a garbage value:

```
idx                                                               
# Float64Index([1.0, 2.0, inf], dtype='float64')
idx.astype(int)                                                   
# Int64Index([1, 2, -9223372036854775808], dtype='int64')
```

Related PR: https://github.com/pandas-dev/pandas/pull/28438
Haven't followed entire discussion but high level lgtm - thanks for the PR! I think @TomAugspurger can have ultimately say here though thanks @dsaxton 