[WIP] Prod/Sum of all-NA / all-empty
To make review a bit easier, I've opened this before it's complete.

Of course we still need to decide

1. Do we want
    a. `sum([]) = 0`; `prod([]) = 1`
    b. `sum([NaN]) = 0`; `prod([NaN])` = 1 
2. Do we like the keyword approach (requiring people who want empty to be NA to always specify it) or do we want a new method?
3. Do we like the `empty_is_na` keyword? Alternatives are `fill_value`, ...
4. Does this apply to groupby (unobserved categoricals)
5. Does this apply to resample?

There are still some failing tests. I've tried to keep the commits separate:

- groupby: https://github.com/pandas-dev/pandas/commit/e96e38649b9e6784fda2eae3de6c72c44f6ca813
- resample: https://github.com/pandas-dev/pandas/commit/20f2ccc4fa2bcb559732e1b37a8671f29d7ef54b

closes #18678 