Fix IntegerArray pow for special cases
Split from #29964 

Only https://github.com/pandas-dev/pandas/commit/9e5a69c3a32aad746ef3df29e43df352f4551f4d is relevant. The rest is https://github.com/pandas-dev/pandas/pull/30183, but pushing this up now.
With #30183 merged, I think this needs a rebase to facilitate review and to check if the changes are still good from https://github.com/pandas-dev/pandas/commit/9e5a69c3a32aad746ef3df29e43df352f4551f4d. My merge in https://github.com/pandas-dev/pandas/pull/30210/commits/b5a4112b16b17d7c89a3f36381bde0c8f240eed0 also includes https://github.com/pandas-dev/pandas/pull/30183 FYI @jorisvandenbossche this is slightly blocking https://github.com/pandas-dev/pandas/pull/29964. It'll make the changes there more focused. @jorisvandenbossche good to go here?