Use more C++17 features

Mainly structured bindings, inline variables, and class template
argument deduction, plus many more smaller things.

Change-Id: I810d17e0adb470426e4e30c898e03b3140ad052f
diff --git a/tests/core/version.t.cpp b/tests/core/version.t.cpp
index 6024f8c..349dfff 100644
--- a/tests/core/version.t.cpp
+++ b/tests/core/version.t.cpp
@@ -43,9 +43,9 @@
                             NFD_VERSION_MINOR * 1000 +
                             NFD_VERSION_PATCH);
 
-  static_assert(NFD_VERSION_MAJOR >= 22 && NFD_VERSION_MAJOR <= 100, "");
-  static_assert(NFD_VERSION_MINOR >= 1 && NFD_VERSION_MINOR <= 12, "");
-  static_assert(NFD_VERSION_PATCH < 1000, "");
+  static_assert(NFD_VERSION_MAJOR >= 22 && NFD_VERSION_MAJOR <= 100);
+  static_assert(NFD_VERSION_MINOR >= 1 && NFD_VERSION_MINOR <= 12);
+  static_assert(NFD_VERSION_PATCH < 1000);
 }
 
 BOOST_AUTO_TEST_CASE(VersionString)