BUG: preserve nullable dtype for float result in IntegerArray/BooleanArray arithmetic ops
xref https://github.com/pandas-dev/pandas/issues/38110

This ensures that an operation on IntegerArray that results in floats (eg division) returns a FloatingArray instead of numpy float array.

This is only a small change in the actual code, the bulk of the changes is updating the tests. 