Standardize use of filesystem

If <filesystem> exists, use that, if it doesn't, try
<experimental/filesystem>. Either way, access it from std via a
namespace splice.

Change-Id: I5b35ee9f74b88e188cb3ca3fed9abaec64933697
Signed-off-by: Vernon Mauery <vernon.mauery@intel.com>
diff --git a/sensordatahandler.cpp b/sensordatahandler.cpp
index 2d4ac3a..ef5089a 100644
--- a/sensordatahandler.cpp
+++ b/sensordatahandler.cpp
@@ -1,5 +1,15 @@
 #include <bitset>
+#if __has_include(<filesystem>)
+#include <filesystem>
+#elif __has_include(<experimental/filesystem>)
 #include <experimental/filesystem>
+namespace std {
+  // splice experimental::filesystem into std
+  namespace filesystem = std::experimental::filesystem;
+}
+#else
+#  error filesystem not available
+#endif
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/log.hpp>
 #include "xyz/openbmc_project/Common/error.hpp"
@@ -409,7 +419,7 @@
 
 GetSensorResponse assertion(const Info& sensorInfo)
 {
-    namespace fs = std::experimental::filesystem;
+    namespace fs = std::filesystem;
 
     fs::path path{ipmi::sensor::inventoryRoot};
     path += sensorInfo.sensorPath;