BUG/API: implement DayDST
xref #41943 cc @mroeschke 

The tests all passed locally up until the last commit, have a handful of broken resample tests now.

The approach here is to keep Day as-is and implement DayDST, fix the actively-wrong infer_freq behavior (see test_infer_freq_across_dst_not_daily), then decide what to do with `freq="infer"` and `freq="D"` based on the presence of a tz.

I guess a deprecation path would be to warn users passing "D" or Day() that it will have DST-aware semantics in the future, and to keep Timedelta-like behavior they should pass "24H".  Would we want to warn in cases where they are equvialent, e.g. tz="UTC" or with a date_range that doesn't happen to cross a DST transition?

With such a deprecation cycle, we could avoid implementing DayDST and when the time comes just call it Day.