BUG: Fixed IntervalArray[int].shift
Closes https://github.com/pandas-dev/pandas/issues/31495

In ExtensionArray.shift, we have the note

```
        # Note: this implementation assumes that `self.dtype.na_value` can be
        # stored in an instance of your ExtensionArray with `self.dtype`.
```

I wonder, should we have a method / property like

```
@property
def _can_hold_na_value(self):
    return True
```

And for IntervalArray, we would do something like

```python
@property
def _can_hold_na_value(self):
    return is_float_dtype(self.dtype.subtype)
```


That would let us deduplicate things, since the call to `_from_sequence` would know to not pass `dtype=self.dtype` and trigger a re-inference.