TST: restructure internal extension arrays tests (split between /arrays and /extension)
Pull request to discuss what to do with the tests for internal EAs (and one of the comments I still had in https://github.com/pandas-dev/pandas/pull/21160)

Basically, I would keep the `tests/extension/..` only for subclassing the base extension array test suite, and any array-specific functionality is tested in `tests/arrays/..` (eg closed attribute for IntervalArray, specific arithmetic behaviour for IntegerArray, ...)

This means that when adding a test related to EAs, we need to think about: is this testing something that is applicable to all EAs? (-> add a base test to `tests/extension/base` so this is tested for all internal and external EAs) or is this testing something specific to a particular EA? (-> add a test in `tests/array/EAtype/..`) 
Of course often there can be some ambiguity here.

Main reason that I would split them is that over time, we probably add a lot of EA-type-specific tests, and then keeping the general ones mixed with the specific ones will make it only confusing / hard to see what is going on. Drawback is of course that it is tested in two places. 
In practice what I propose in this PR, is also what we already do for Categorical at the moment: Categorical has its own tests in `tests/arrays/categorical` (and probably also some in `indexes` and `frame`, ..), but we also run the base extension tests for Categorical in `tests/extension/`