TST/REF: refactor the arithmetic tests for IntegerArray
This is an attempt to make the arithmetic tests for the masked arrays more understandable and maintainable (doing it here for IntegerArray as a start, but the idea would be to do the same for BooleanArray, and later FloatingArray as well, and at that point also share some of those tests).

The problem with the current `arrays/integer/test_arithmetic.py` is that is quite complex to see what is going on (which I experienced when making a version for FloatingArray in https://github.com/pandas-dev/pandas/pull/34307): for example, there is a huge `_check_op` method that has all the logic to created the expected result, but so this also has all the special cases of all ops combined, making it very difficult to see what is going on or to know what is now exactly tested for a certain op. 
The reason for this structure is that those tests originally came from the base extension tests in `tests/extension/`, where the tests needed to be very generic. However, we already moved out those tests for IntgerArray, since they were all customized (nothing was still being inherited from the base class), but so we also don't need to maintain the original class structure then.

The logic how I constructed the new tests:

- I first test each `op` with an explicitly constructed expected result. Here, we test the IntegerArray-specific special cases (like things as `1 ** pd.NA`, or division resulting in a float numpy array, ..). Explicitly writing it down makes it a lot easier to read and to see what is tested (no complex `if op == ...: ..,` constructs, and no complex correcting of expected results based on ndarray)
- Those first tests are all with EAs. In a next set of tests, I added tests for array+scalar ops, array+ndarray ops, ... But here, I just rely on creating the expected result with the EA itself (since EA+EA ops were already tested before)
- Similar tests for frame+scalar, series+scalar, series+array with the EA dtypes -> rely on the actual EA op for the expected result instead of having `_check_op` handle that as well.


cc @dsaxton @jreback 