[3.12] gh-89039: Call subclass constructors in datetime.*.replace (GH-114780) (GH-131239)
When replace() method is called on a subclass of datetime, date or time,
properly call derived constructor. Previously, only the base class's
constructor was called.
Also, make sure to pass non-zero fold values when creating subclasses in
various methods. Previously, fold was silently ignored.
(cherry picked from commit
46190d9ea8a878a03d95b4e1bdcdc9ed576cf3fa)
Co-authored-by: Eugene Toder <eltoder@users.noreply.github.com>