API: Series[dt64].astype(dt64tz) vs Datetime(Array|Index)[naive].astype(dt64tz)
```
dti = pd.date_range("2016-01-01", periods=2)
dtype = dti.tz_localize("US/Pacific").dtype

dta = dti._data
ser = pd.Series(dta)

>>> dta.astype(dtype)   # matches dti.astype(dtype)
<DatetimeArray>
['2016-01-01 00:00:00-08:00', '2016-01-02 00:00:00-08:00']
Length: 2, dtype: datetime64[ns, US/Pacific]

>>> ser.astype(dtype)._values
<DatetimeArray>
['2015-12-31 16:00:00-08:00', '2016-01-01 16:00:00-08:00']
Length: 2, dtype: datetime64[ns, US/Pacific]
```

`Series.astype` behavior is defined in `DatetimeBlock.astype`, is equivalent to `dta.tz_localize("UTC").tz_convert(dtype.tz)`