AST-850 Use C++17
This requires the library to be build with C++17.
Fixes a deprecated diagnostics in the external date.h. The function uncaught_exception was replaced in C++17 by uncaught_exceptions. The former is removed in C++20.
The entire header could be removed, that required rewriting data::format, but C++20 adds std::format so prefer to keep the current version until we can move to C++20.