Deduction guides for std::chrono::zoned_time

These deduction guides normalize Duration to a minimum resolution of std::chrono::seconds, and provide correct handling for time zone names specified using types convertible to std::string_view.

# Declarations

zoned_time() -> zoned_time<std::chrono::seconds>;

(since C++20)

template< class Duration >
zoned_time( std::chrono::sys_time<Duration> )
-> zoned_time<std::common_type_t<Duration, std::chrono::seconds>>;

(since C++20)

template< class TimeZonePtrOrName >
zoned_time( TimeZonePtrOrName&& ) -> zoned_time<std::chrono::seconds, /* see below */>;

(since C++20)

template< class TimeZonePtrOrName, class Duration >
zoned_time( TimeZonePtrOrName&&, std::chrono::sys_time<Duration> )
-> zoned_time<std::common_type_t<Duration, std::chrono::seconds>, /* see below */>;

(since C++20)

template< class TimeZonePtrOrName, class Duration >
zoned_time( TimeZonePtrOrName&&, std::chrono::local_time<Duration>,
std::chrono::choose = std::chrono::choose::earliest )
-> zoned_time<std::common_type_t<Duration, std::chrono::seconds>, /* see below */>;

(since C++20)

template< class TimeZonePtrOrName, class Duration, class TimeZonePtr2 >
zoned_time( TimeZonePtrOrName&&, std::chrono::zoned_time<Duration, TimeZonePtr2>,
std::chrono::choose = std::chrono::choose::earliest )
-> zoned_time<std::common_type_t<Duration, std::chrono::seconds>, /* see below */>;

(since C++20)