This patch is more meant as a proof-of-concept, although OTOH if there are no bigger objections, this could already be reviewed properly. The changes to the existing BLI code should be committed separately and covered well in unit tests to avoid regressions.
* Add ghc::filesystem as platform compatible replacement for std::filesystem
* Add Windows specific code to avoid issues with including Windows.h
* Port storage.cc to C++
* Port some functions from storage.cc to use ghc::filesystem internally.
* General cleanup related to the changes.
* Add USE_CPP_FILESYSTEM compile option to storage.cc, to keep legacy code around for testing.