ENH: Resolutions for month/qtr/year
This does three things

1) Use Resolution objects instead of strings in the places in core.indexes.  This makes whats going on much clearer.
2) To make 1) possible, extend Resolution to include month, quarter, and year.  This means that `pd.period_range("2017", periods=3, freq="A").resolution` is now "year" instead of "day", which is more accurate.
3) with year/quarter/month added, `Resolution` and `FreqGroup` will be re-labellings of each other, so we can de-duplicate them.  They will end up living in tslibs.dtypes.
Hello @jbrockmendel! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:













There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2020-06-09 21:06:34 UTC Some questions:

- To be able to de-duplicate with FreqGroup, wouldn't you also need to add weekly and business-day resolution?
- Since resolution is used for string datetime indexing, how does this change affect that (or not) ? > To be able to de-duplicate with FreqGroup, wouldn't you also need to add weekly and business-day resolution?

Yep, oversight on my part.  Weekly we could reasonably add to Resolution, but Business makes less sense.  De-duplication may not be viable after all.

> Since resolution is used for string datetime indexing, how does this change affect that (or not) ?

It does not affect the behavior.  Adding the month/quarter/year resos is what allows us to use Resolution objects in the relevant indexing code without changing any behavior. rebased+green thanks!