ExtensionArray.__fillna__ should not use lib.is_scalar
`lib.is_scalar` is a bit too strict for the check we do in https://github.com/pandas-dev/pandas/blob/7273ea0709590e6264607f227bb8def0ef656c50/pandas/core/arrays/base.py#L272. For example, it doesn't condisder `ipaddress.IPv4Address` as a scalar.

```python
In [1]: from pandas._libs import lib

In [2]: import ipaddress

In [3]: lib.is_scalar(ipaddress.IPv4Address(1))
Out[3]: False
```

Replacing that check with a `hasattr(value, '__len__')` should be sufficient.
