API/CLN: more common ops to integrate with Series/index OpsMixin
after #6380, ability to pretty easily move ops over to the mix-in
- [x] `date/time` (added in #6380)
- [ ] more periods ops? #5202 
- [x] additional field accessor (`is_beg_year`), #4823
- [x] validate `argmin/max`, (PR #7904)
- [x] StringMethods, e.g. `str` for `Index` (not for sub-classes though), #9068 

(this turns out to be quite tricky, as sometimes construction depends on the existence of a `tz` attribute)
- [ ] `freq,frestr,inferred_freq`
- [x] `is_monotonic` #13336 
- [x] `pd.infer_freq()`, related #6407,#6408
- [ ] `is_unique,lexsort_depth,nlevels`
- [x] `nunique()`,`unique()`,`value_counts()`, #6734
- [x] `factorize()` #7090
- [ ] `get_loc/find` #4616
- [ ] `__invert__` #8875

These are related in that they are generic.py functions as they have to compute something then set the axis with the result.
- [ ] `normalize` #5502
- [ ] `tz_convert/tz_localize` (though this requires a bit of wrapping as they have an axis parm,
  but should be possible), see also here: https://github.com/pydata/pandas/pull/7915 (currently implemented only on `DatetimeIndex`, `PeriodIndex` has these as not implemented (and delegating from `NDFrame` is in `core/generic`)
- [x] `duplicated/drop_duplicates` #4060, (PR #7979)
- [ ] `has_duplicates` #9077 
