ENH: Allow storing ExtensionArrays in containers
Followup number 1 to #19268 

This adds changes to frame, series, dtypes, etc. (all the places other that `core/internals.py`) to support 3rd party extension arrays.

These changes were developed to support IntervalArrays (https://github.com/TomAugspurger/pandas/compare/pandas-array-upstream+fu1...TomAugspurger:pandas-array-upstream+fu1+interval separate PR) and https://github.com/continuumio/pandas-ip (external).

Also closes https://github.com/pandas-dev/pandas/issues/19585