ENH: Support EAs in Series.unstack
Closes https://github.com/pandas-dev/pandas/issues/23077

This prevents ExtensionArray-backed series from being converted to object-dtype in unstack.

The strategy is to do a dummy unstack on an ndarray of integers, which provides the `indices` to `take` later on. We then concat together at the end. This provided decent performance, and seems pretty maintainable in the long run.

I'll post some benchmarks later.

Do we want to do DataFrame.stack() in the same PR?