PERF: avoid casting to float in IntegerArray reducing ops
Currently, we cast to float in the IntegerArray reducing ops:

https://github.com/pandas-dev/pandas/blob/db620397328567ff8153ae6031685b88c84dc8f8/pandas/core/arrays/integer.py#L673-L678

However, the `nanops` functions can already handle a mask. So with the appropriate fill_value, there should be no need to cast the integers to float (and check for missing values). At least this is the case for `skipna=True`, the case of `skipna=False` might need to be handled separately.
