PERF: Datetime/Timestamp.normalize for timezone naive datetimes
State: closed

- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

```
       before           after         ratio
     [bb32564c]       [ff171f75]
-         281±2μs          197±2μs     0.70  timeseries.DatetimeIndex.time_normalize('dst')
-     4.26±0.05ms      2.64±0.04ms     0.62  timeseries.DatetimeAccessor.time_dt_accessor_normalize
-     3.78±0.01ms      2.28±0.01ms     0.60  timeseries.DatetimeIndex.time_normalize('repeated')
-     3.79±0.05ms      2.23±0.06ms     0.59  timeseries.DatetimeIndex.time_normalize('tz_naive')


       before           after         ratio
     [bb32564c]       [ff171f75]
-      11.9±0.9μs         1.56±0μs     0.13  timestamp.TimestampOps.time_normalize(None)
```

Labels:
name: Datetime
description: Datetime data dtype
name: Performance
description: Memory or execution speed performance
name: Internals
description: Related to non-user accessible pandas implementation
name: Clean

Comments:
Hello @mroeschke! Thanks for submitting the PR.

 - There are no PEP8 issues in the file [`asv_bench/benchmarks/timestamp.py`](https://github.com/mroeschke/pandas/blob/cc6eee0ee9684121921bdb6516fde3daa6c6c43e/asv_bench/benchmarks/timestamp.py) !

 - There are no PEP8 issues in the file [`pandas/core/arrays/datetimes.py`](https://github.com/mroeschke/pandas/blob/cc6eee0ee9684121921bdb6516fde3daa6c6c43e/pandas/core/arrays/datetimes.py) !

 - There are no PEP8 issues in the file [`pandas/tests/indexes/datetimes/test_scalar_compat.py`](https://github.com/mroeschke/pandas/blob/cc6eee0ee9684121921bdb6516fde3daa6c6c43e/pandas/tests/indexes/datetimes/test_scalar_compat.py) !

 - There are no PEP8 issues in the file [`pandas/tests/scalar/timestamp/test_unary_ops.py`](https://github.com/mroeschke/pandas/blob/cc6eee0ee9684121921bdb6516fde3daa6c6c43e/pandas/tests/scalar/timestamp/test_unary_ops.py) !


# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23634?src=pr&el=h1) Report
> Merging [#23634](https://codecov.io/gh/pandas-dev/pandas/pull/23634?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/24bce1a5fdd70a66b9fb5e2f9f51631d1df6add3?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `100%`.

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

```diff
@@            Coverage Diff             @@
##           master   #23634      +/-   ##
==========================================
+ Coverage   92.23%   92.23%   +<.01%     
==========================================
  Files         161      161              
  Lines       51408    51414       +6     
==========================================
+ Hits        47416    47422       +6     
  Misses       3992     3992
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.62% <100%> (ø)` | :arrow_up: |
| #single | `42.29% <0%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/23634?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/arrays/datetimes.py](https://codecov.io/gh/pandas-dev/pandas/pull/23634/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL2RhdGV0aW1lcy5weQ==) | `98.5% <100%> (+0.01%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23634?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/23634?src=pr&el=footer). Last update [24bce1a...fb11dcf](https://codecov.io/gh/pandas-dev/pandas/pull/23634?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

@jreback gathered some of the `DAY_NS` usage into a constant in np_datetime.pyx and all green.
All green after some flaky azure tests.
Ping all green @jreback 
thanks @mroeschke