BUG/API: to_datetime preserves UTC offsets when parsing datetime strings
State: closed

- [x] closes #17697
- [x] closes #11736
- [x] closes #21864
- [x] precursor to fixing #15938
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

This PR makes `to_datetime(ts_string_with_offset)` and `DatetimeIndex([ts_string_with_offset])` to now match `Timestamp(ts_string_with_offset)`
```
This branch

In [2]: Timestamp("2015-11-18 15:30:00+05:30")
Out[2]: Timestamp('2015-11-18 15:30:00+0530', tz='pytz.FixedOffset(330)')

In [3]: to_datetime("2015-11-18 15:30:00+05:30")
Out[3]: Timestamp('2015-11-18 15:30:00+0530', tz='pytz.FixedOffset(330)')

In [4]: DatetimeIndex(["2015-11-18 15:30:00+05:30"])
Out[4]: DatetimeIndex(['2015-11-18 15:30:00+05:30'], dtype='datetime64[ns, pytz.FixedOffset(330)]', freq=None)
```


Labels:
name: Bug
name: Timezones
description: Timezone data dtype

Comments:
Looking over the test failures, most of them are clearly the-test-is-wrong.
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/21822?src=pr&el=h1) Report
> Merging [#21822](https://codecov.io/gh/pandas-dev/pandas/pull/21822?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/d30c4a0696d5fbdc3c7ce36a9b9b19224a557e09?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/21822/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/21822?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #21822      +/-   ##
==========================================
+ Coverage   92.07%   92.07%   +<.01%     
==========================================
  Files         170      170              
  Lines       50690    50696       +6     
==========================================
+ Hits        46672    46678       +6     
  Misses       4018     4018
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.48% <100%> (ø)` | :arrow_up: |
| #single | `42.3% <60%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/21822?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/dtypes/cast.py](https://codecov.io/gh/pandas-dev/pandas/pull/21822/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZHR5cGVzL2Nhc3QucHk=) | `88.52% <ø> (ø)` | :arrow_up: |
| [pandas/core/tools/datetimes.py](https://codecov.io/gh/pandas-dev/pandas/pull/21822/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvdG9vbHMvZGF0ZXRpbWVzLnB5) | `85.07% <100%> (+0.28%)` | :arrow_up: |

------

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

A few comments, mostly about some tough perf tradeoffs.  Generally this looks great; I'm really psyched to see this get fixed.
Addressed your comments @jreback & @jbrockmendel. Open for a final look. 
Does this make `Timestamp("now")` match `to_datetime("now")`?  Or "today"?
This doesn't fix "now". ("today" looks like it was handled in #19937)
can you rebase
@mroeschke can you also run some timeseries benchmarks generally to see if any effects (I would expected *some* small slowdown for parsing but but not significant). You *may* need to add some benchmarks to capture the new code paths.
> any comments? 

Just that I’m pretty stoked to see this fixed.
From one new ASV I added, parsing strings with different offests will be slower, but I think it's acceptable given the new (more correct) behavior

```
       before           after         ratio
     [d30c4a06]       [807a2513]
+         1.17±0s       2.37±0.02s     2.02  timeseries.ToDatetimeNONISO8601.time_different_offset

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
```
ncie patch @mroeschke !