parametrize tests, unify repeated tests
There's more to do, but the diff is already pretty big as it is.

There are a handful of test methods that are defined in 5-6 test classes.  By moving those to the base class we a) get rid of duplicate code and b) run the tests for all (well, most) `DateOffset` subclasses.