API: disallow dates in reduction operations

CLN: refactor into a class decorator

DOC: add starter rls and whatsnew notes

TST: add tests

CLN: refactor bottleneck into class decorator

BUG: fix median compatibility issues

DOC: comment up some possibly obtuse looking code

CLN: fix up comments

ENH: add functools.wraps to preserve operation name in error message