BUG: preserve fold in Timestamp.replace
- [X] closes #37610
- [X] 1 tests added / 1 passed
- [X] passes `black pandas`
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

## Problem
We currently lose `fold` information (whether the Timestamp corresponds to the first or second instance of wall clock time in a DST transition) when calling `Timestamp.replace`.

## Solution
A simple addition to the code of `Timestamp.replace` should fix this.

## Test
I added the test for the use case I came up with in the issue discussion. The OP example is losing `fold` when deleting timezone information with `Timetsamp.replace`, and that's not really a bug, but replacing a valid dateutil timezone with itself and losing `fold` definitely is.

The proposed solution fixes the original example as well. I just don't think we should be tracking it in tests, as it's not clear to me why `fold` must be preserved in a `Timestamp` with no timezone information (but it is the convention recommended in [PEP 495, fold section](https://www.python.org/dev/peps/pep-0495/#the-fold-attribute) to let users keep invalid fold and to just ignore it).

## Some details
IIRC, we ignore `fold`, when it doesn't do anything, so we should be safe preserving `fold` while replacing tzinfo with None, as in the OP example. I remember this coming up when we introduced fold support, and we made sure that the fold-aware functions don't care what fold is outside of a DST transition with a dateutil timezone (this was done to satisfy the requirements of [PEP 495, fold section](https://www.python.org/dev/peps/pep-0495/#the-fold-attribute)).
All green, should be ready for a review. cc @pganssle @jbrockmendel  @jreback @jbrockmendel @pganssle 
Accepted all suggestions, all green, detailed comments above. Looks fine to me, but I'm going to agree with whatever @pganssle says here thanks @AlexKirko 