Public API for extension arrays / types.
**API Changes**

Adds

* pandas.integer_array
* pandas.period_array
* pandas.IntervalArray
* pandas.CategoricalDtype
* pandas.api.extensions.IntergerArray
* pandas.api.extensions.PeriodDtype
* pandas.api.extensions.PeriodArray
* pandas.api.extensions.IntervalDtype
* pandas.api.extensions.DatetimeTZDtype

And adds documentation for those.

The organizing principle here is "what's useful to users." `integer_array` is useful to users, so it's in the top-level, while `IntegerArray` isn't so useful on it's own, so it's in `api.extensions`. `IntervalArray` is useful, so it's at the top-level.

Closes https://github.com/pandas-dev/pandas/issues/22860