ExtensionArray.astype and missing values
How should ExtensionArray.astype handle coercing values to dtype?

Currently, we seem to follow NumPy:

```python
In [19]: np.array([1, 2, np.nan]).astype('i8')
Out[19]: array([                   1,                    2, -9223372036854775808])

In [20]: pd.Categorical([1, 2, None]).astype('i8')
Out[20]: array([                   1,                    2, -9223372036854775808])
``` 

Do we want that behavior? SparseArray currently raises.

Note that at least for Categorical, this will require scanning the data for missing values, which is rarely a good idea.