#31793 Add support for subtracting datetime from Timestamp
- [x] closes #31793
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Based on the discussion in the attached issue, i've made the following changes:

1. add support for subtracting when the two items have different timezones
2. raise an error if one (but not both) timezone is naive

The root cause of 31793 was that the tzinfo objects were from different libraries -- `Timestamp` makes a `pytz.UTC` whereas a datetime object might just have `datetime.timezone.utc`. These objects are not necessarily equal, even if they represent the same timezone.

In addition, this change *adds* support for time-deltas where the timezone of each date is not the same. This follows the behaviour of `datetime` more closely.


I reference the [python `datetime` module documentation](https://docs.python.org/3/library/datetime.html) which defines when a datetime is naive: when its `tzinfo` is `None` or a call to `item.tzinfo.utcoffset(item)` returns `None`.