Make pd.Period immutable
Follows @jreback 's suggestion in #17116 to define `_Period.ordinal` and `_Period.freq` as `def readonly` attributes.  This requires massaging `__new__/__init__` a bit.

Adds a quick test that these attributes can't be changed.

Note that this doesn't fully solve the issue of Periods being immutable because `per.freq` is a `DateOffset` object which itself can be messed with.

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