centralize and de-privatize month/day name constants
State: closed

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


Labels:
name: Datetime
description: Datetime data dtype
name: Frequency
description: DateOffsets
name: Clean

Comments:
I've got some debugging to do here and in two other places.  In the interim, there's a bugfix in #18376 that I'm really eager to get closed.
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=h1) Report
> Merging [#18728](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/2aa4aa947df59d7f0a5bd86145394f5db124250a?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `90.47%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/18728/graphs/tree.svg?height=150&width=650&token=eZ4WkYLtcO&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #18728      +/-   ##
==========================================
- Coverage   91.61%   91.59%   -0.02%     
==========================================
  Files         153      153              
  Lines       51339    51342       +3     
==========================================
- Hits        47034    47028       -6     
- Misses       4305     4314       +9
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `89.46% <90.47%> (ø)` | :arrow_up: |
| #single | `40.74% <38.09%> (-0.12%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/tseries/frequencies.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL3RzZXJpZXMvZnJlcXVlbmNpZXMucHk=) | `94.04% <100%> (+0.02%)` | :arrow_up: |
| [pandas/tseries/offsets.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL3RzZXJpZXMvb2Zmc2V0cy5weQ==) | `96.95% <88.23%> (ø)` | :arrow_up: |
| [pandas/io/gbq.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL2lvL2dicS5weQ==) | `25% <0%> (-58.34%)` | :arrow_down: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.81% <0%> (-0.1%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=footer). Last update [2aa4aa9...de8dc13](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=h1) Report
> Merging [#18728](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/4091f64d6e0dca3177f905b71f4d067bef8acd91?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `90.47%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/18728/graphs/tree.svg?token=eZ4WkYLtcO&width=650&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #18728      +/-   ##
==========================================
- Coverage   91.61%   91.59%   -0.02%     
==========================================
  Files         153      153              
  Lines       51361    51364       +3     
==========================================
- Hits        47053    47047       -6     
- Misses       4308     4317       +9
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `89.45% <90.47%> (ø)` | :arrow_up: |
| #single | `40.74% <38.09%> (-0.12%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/tseries/frequencies.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL3RzZXJpZXMvZnJlcXVlbmNpZXMucHk=) | `94.04% <100%> (+0.02%)` | :arrow_up: |
| [pandas/tseries/offsets.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL3RzZXJpZXMvb2Zmc2V0cy5weQ==) | `96.95% <88.23%> (ø)` | :arrow_up: |
| [pandas/io/gbq.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL2lvL2dicS5weQ==) | `25% <0%> (-58.34%)` | :arrow_down: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/18728/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.81% <0%> (-0.1%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=footer). Last update [4091f64...a64a31f](https://codecov.io/gh/pandas-dev/pandas/pull/18728?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

circleCI is a timeout, appveyor looks unrelated, goes through fine locally:

```
___ TestDataFrameGroupByPlots.test_series_groupby_plotting_nominally_works ____
[gw0] win32 -- Python 3.6.3 C:\Miniconda3_64\envs\pandas\python.exe
self = <pandas.tests.plotting.test_groupby.TestDataFrameGroupByPlots object at 0x000000EA3231CCC0>
    def test_series_groupby_plotting_nominally_works(self):
        n = 10
        weight = Series(np.random.normal(166, 20, size=n))
        height = Series(np.random.normal(60, 10, size=n))
        with tm.RNGContext(42):
            gender = np.random.choice(['male', 'female'], size=n)
    
>       weight.groupby(gender).plot()
pandas\tests\plotting\test_groupby.py:25: 
```


Just a heads up, there are also some day names hardcoded [here](https://github.com/pandas-dev/pandas/blob/3e506a363e40d2426936a0ee570e3d56830b0d5f/pandas/_libs/tslibs/timestamps.pyx#L692) and [here](https://github.com/pandas-dev/pandas/blob/master/pandas/_libs/tslibs/fields.pyx#L100) as well. 

Linking #18164 as reference for myself. 
@jbrockmendel pls add @mroeschke suggestions to the list, whomever wants can do a PR to centralize those as well!