Implement BaseOffset in tslibs.offsets
This moves a handful of methods of `DateOffset` up into `tslibs.offsets.BaseOffset`.  The focus for now is on arithmetic methods that do not get overridden by subclasses.  These use the `self.__class__(..., **self.kwds)` pattern that we eventually need to get rid of.  Isolating this pattern before suggesting alternatives.

The `_BaseOffset` class was intended to be a `cdef` class, but that leads to errors in `test_pickle_v0_15_2` that I haven't figured out yet.  Once that gets sorted out, we can make `DateOffset` immutable and see some real speedups via caching.

See other comments in-line.