BUG: Series.apply with DatetimeTZDtype passes DatetimeIndex to UDF
- [x] I have checked that this issue has not already been reported.

- [x] I have confirmed this bug exists on the latest version of pandas.

- [ ] (optional) I have confirmed this bug exists on the master branch of pandas.

---

#### Problem description

Calling `.apply` on a `Series` of `DatetimeTZDtype` passes the data as a `DatetimeIndex` to the user-supplied function, instead of each value of the `Series` individually.

#### Code Sample, a copy-pastable example

```python
import pandas as pd

def f(val):
    print(f"Function received: {val}\n")
    return val

s = pd.Series([pd.Timestamp.utcnow()])

new_s = s.apply(f)

print(new_s)
```

#### Actual Output

```
Function received: DatetimeIndex(['2020-12-29 18:48:48.688326+00:00'], dtype='datetime64[ns, UTC]', freq=None)

0   2020-12-29 18:48:48.688326+00:00
dtype: datetime64[ns, UTC]
```

Interestingly, if `f` returns `None`, then `apply` will first pass the `Series` as a `DatetimeIndex`, then it passes the actual `Timestamp`. The return value of that `apply` is still a length-1 `Series` (whose one value is `None`), not a length-2 `Series` with two `None` values.

#### Expected Output

```
Function received: 2020-12-29 18:48:48.688326+00:00

0   2020-12-29 18:48:48.688326+00:00
dtype: datetime64[ns, UTC]
```

**NOTE: If the `Series` is created with `pd.Timestamp.now()` (not UTC), then we get the expected behavior.**

#### Why this is a problem

Users write their `apply` functions with the expectation that it will receive the values of the `Series` one by one. This leads to errors when operations are applied to the received value that do not work on a `DatetimeIndex`, but would work on a `Timestamp`.

Additionally, users do not expect different behavior from the `apply` function based on whether their data has time zone information or not.

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit           : 3e89b4c4b1580aa890023fc550774e63d499da25
python           : 3.8.5.final.0
python-bits      : 64
OS               : Windows
OS-release       : 10
Version          : 10.0.19041
machine          : AMD64
processor        : Intel64 Family 6 Model 158 Stepping 9, GenuineIntel
byteorder        : little
LC_ALL           : None
LANG             : None
LOCALE           : English_United States.1252

pandas           : 1.2.0
numpy            : 1.19.1
pytz             : 2020.1
dateutil         : 2.8.1
pip              : 20.2.2
setuptools       : 49.6.0.post20200814
Cython           : None
pytest           : 6.0.1
hypothesis       : None
sphinx           : 3.3.0
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : None
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.11.2
IPython          : 7.19.0
pandas_datareader: None
bs4              : 4.9.3
bottleneck       : None
fsspec           : None
fastparquet      : None
gcsfs            : None
matplotlib       : None
numexpr          : None
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pyxlsb           : None
s3fs             : None
scipy            : None
sqlalchemy       : None
tables           : None
tabulate         : None
xarray           : None
xlrd             : None
xlwt             : None
numba            : None

</details>
