ENH: PeriodIndex can accept freq with mult
Closes #7811.
- [x] Change `Period.freq` and `PeriodIndex.freq` to store offsets.
  - [x] Add `freqstr` to `Period`, `PeriodIndex` can use `DatetimeIndexOpsMixin`'s logic 
  - [x] Logic and tests for pickles taken in prev versions
- [x] Perform shift/arithmetic considering freq's mult. 
  - [x] Test all offsets has accessible `n` proeprties  (#10350)
- [x] Explicit tests for `asfreq` and `to_timestamp` using freq with mult.
- [x] Ops with different base freq must be prohibited. Change freq comparison to base comparison.
- [x] Fix partial string slicing bug (some tests are commented out because of this)
- [x] Fix order bug (#10295, removing temp logic for `PeriodIndex`)
- ~~Decide a policy for legacy freq aliases, like "WK"~~ (handled in #10878)
- [x] Update doc.
