ExtensionArray.shift incorrect for periods larger than length of array
```python
In [9]: from pandas.tests.extension.decimal import to_decimal

In [10]: to_decimal([1, 2]).shift(4)
Out[10]:
DecimalArray(array([Decimal('NaN'), Decimal('NaN'), Decimal('NaN'), Decimal('NaN')],
      dtype=object))
```

The expected output is

```python
>>> to_decimal(['NaN', 'NaN'])
DecimalArray(array([Decimal('NaN'), Decimal('NaN')], dtype=object))
```

similar to categorical

```python
In [12]: pd.Categorical([1, 2]).shift(4)
Out[12]:
[NaN, NaN]
Categories (2, int64): [1, 2]
```

This will need a new base test in `tests/extension/base/methods.py` and a fix in https://github.com/pandas-dev/pandas/blob/a7b187ab42c48342478ed8664145f21578f50622/pandas/core/arrays/base.py#L430