BUG: loffset not applied when using resample with agg() (GH13218)
- [x] closes #13218  and #15002 (continuation of closed PR https://github.com/pydata/pandas/pull/13861)
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

_apply_loffset is called in resampler's downsample and groupby_and_agg methods, defined [here](https://github.com/pydata/pandas/blob/master/pandas/tseries/resample.py#L535) and [here](https://github.com/pydata/pandas/blob/master/pandas/tseries/resample.py#L545)

When a `str` is passed into `aggregate`, the above methods are called [here](https://github.com/pydata/pandas/blob/master/pandas/core/base.py#L431), and consequently the loffset is applied. 

**However**, if anything other than a `str` is passed into `aggregate`, then a different path will be taken and **the loffset must be applied**. So a simple check in `aggregate` will apply the loffset correctly.

note: my last PR was closed, and I can't reopen it by a force push, hence the new one
