config_parser: Add common boolean parser

This more accurately parses systemd values instead of just comparing to
"false" or "true".

Change-Id: I0d70ef418075d555bf6f090fefa0b34332491ed0
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/dhcp_configuration.cpp b/src/dhcp_configuration.cpp
index 0605a6a..ec9e6d9 100644
--- a/src/dhcp_configuration.cpp
+++ b/src/dhcp_configuration.cpp
@@ -98,7 +98,14 @@
         log<level::NOTICE>(msg.c_str(), entry("PROP=%s", prop.c_str()));
         return true;
     }
-    return values.back() != "false";
+    auto ret = config::parseBool(values.back());
+    if (!ret.has_value())
+    {
+        auto msg = fmt::format("Failed to parse section DHCP[{}]: `{}`", prop,
+                               values.back());
+        log<level::NOTICE>(msg.c_str(), entry("PROP=%s", prop.c_str()));
+    }
+    return ret.value_or(true);
 }
 } // namespace dhcp
 } // namespace network