ENH: allow non-Tick offsets in index.round/ceil/floor
related #27087 (Add `DayBegin`, `DayEnd` offsets)

- [ ] closes #15303
- [ ] tests added / passed
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

I ran into #15303 
```python
In [4]: import pandas as pd
   ...: index=pd.date_range("2000-01-01","2000-01-02",freq="1H")
   ...: index.round("M")
ValueError: <MonthEnd> is a non-fixed frequency
```

This [comment](https://github.com/pandas-dev/pandas/issues/15303#issuecomment-277401817) argues that implementing `round()` doesn't make sense here, since with non-fixed offsets it might round some midpoints up and some down. That might be what the user actually wants, but it's a subtle point. I put the commented code in anyway, just as an option, and implemented dti.`floor`/`ceil`.

If there's intent-to-merge, I'll add the tests etc'.
