Switch to C++17

There is no harm in doing this since we are not a client library and all
environments using this project should have c++17 compliant compilers at
this point.

Tested:
    Run through unit test suite.

Change-Id: Iceae5375fd69b1929e1c4e2c6c297d131c61de68
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/watchdog.hpp b/watchdog.hpp
index ea419e7..efa413a 100644
--- a/watchdog.hpp
+++ b/watchdog.hpp
@@ -2,12 +2,14 @@
 
 #include "timer.hpp"
 
-#include <systemd/sd-event.h>
-
-#include <experimental/optional>
+#include <functional>
+#include <map>
+#include <optional>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/server/object.hpp>
+#include <utility>
 #include <xyz/openbmc_project/State/Watchdog/server.hpp>
+
 namespace phosphor
 {
 namespace watchdog
@@ -54,8 +56,7 @@
     Watchdog(sdbusplus::bus::bus& bus, const char* objPath, EventPtr& event,
              std::map<Action, TargetName>&& actionTargets =
                  std::map<Action, TargetName>(),
-             std::experimental::optional<Fallback>&& fallback =
-                 std::experimental::nullopt) :
+             std::optional<Fallback>&& fallback = std::nullopt) :
         WatchdogInherits(bus, objPath),
         bus(bus), actionTargets(std::move(actionTargets)),
         fallback(std::move(fallback)),
@@ -129,7 +130,7 @@
     std::map<Action, TargetName> actionTargets;
 
     /** @brief Fallback timer options */
-    std::experimental::optional<Fallback> fallback;
+    std::optional<Fallback> fallback;
 
     /** @brief Contained timer object */
     Timer timer;