[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 
Hello @TomAugspurger! Thanks for submitting the PR.





 - In the file [`pandas/tests/frame/test_analytics.py`](https://github.com/pandas-dev/pandas/blob/d7e9f4a0eeda0c6b632c575fa5f832c76183089b/pandas/tests/frame/test_analytics.py), following are the PEP8 issues :

> [Line 804:29](https://github.com/pandas-dev/pandas/blob/d7e9f4a0eeda0c6b632c575fa5f832c76183089b/pandas/tests/frame/test_analytics.py#L804): [E225](https://duckduckgo.com/?q=pep8%20E225) missing whitespace around operator



 - In the file [`pandas/tests/groupby/test_categorical.py`](https://github.com/pandas-dev/pandas/blob/d7e9f4a0eeda0c6b632c575fa5f832c76183089b/pandas/tests/groupby/test_categorical.py), following are the PEP8 issues :

> [Line 686:49](https://github.com/pandas-dev/pandas/blob/d7e9f4a0eeda0c6b632c575fa5f832c76183089b/pandas/tests/groupby/test_categorical.py#L686): [W292](https://duckduckgo.com/?q=pep8%20W292) no newline at end of file









 - In the file [`pandas/tests/test_nanops.py`](https://github.com/pandas-dev/pandas/blob/d7e9f4a0eeda0c6b632c575fa5f832c76183089b/pandas/tests/test_nanops.py), following are the PEP8 issues :

> [Line 1058:48](https://github.com/pandas-dev/pandas/blob/d7e9f4a0eeda0c6b632c575fa5f832c76183089b/pandas/tests/test_nanops.py#L1058): [W292](https://duckduckgo.com/?q=pep8%20W292) no newline at end of file



 Superseded by https://github.com/pandas-dev/pandas/pull/18876