Upgrade WPILib and upgraded compilers to C++17

I haven't touched the CTRE libraries yet, although they may need to be
upgraded as well.

Note that this change makes it so that you need either Ubuntu 18.04 or
later or debian buster or later in order to build the code (you may be
able to build code for the roborio on older operating systems, but
running the tests will not work normally).

Change-Id: I0cfa37fe37f830edde6d305e1f50414c369098e4
diff --git a/aos/configuration.h b/aos/configuration.h
index e777f41..b837391 100644
--- a/aos/configuration.h
+++ b/aos/configuration.h
@@ -6,7 +6,8 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-#include "absl/strings/string_view.h"
+#include <string_view>
+
 #include "aos/configuration_generated.h"
 #include "aos/flatbuffers.h"
 
@@ -19,7 +20,7 @@
 // Reads a json configuration.  This includes all imports and merges.  Note:
 // duplicate imports will result in a CHECK.
 FlatbufferDetachedBuffer<Configuration> ReadConfig(
-    const absl::string_view path);
+    const std::string_view path);
 
 // Sorts and merges entries in a config.
 FlatbufferDetachedBuffer<Configuration> MergeConfiguration(
@@ -36,14 +37,15 @@
 //
 // If the application name is empty, it is ignored.  Maps are processed in
 // reverse order, and application specific first.
-const Channel *GetChannel(const Configuration *config,
-                          const absl::string_view name,
-                          const absl::string_view type,
-                          const absl::string_view application_name);
-inline const Channel *GetChannel(const Flatbuffer<Configuration> &config,
-                          const absl::string_view name,
-                          const absl::string_view type,
-                          const absl::string_view application_name) {
+const Channel *GetChannel(
+    const Configuration *config, const std::string_view name,
+    const std::string_view type,
+    const std::string_view application_name);
+inline const Channel *GetChannel(
+    const Flatbuffer<Configuration> &config,
+    const std::string_view name,
+    const std::string_view type,
+    const std::string_view application_name) {
   return GetChannel(&config.message(), name, type, application_name);
 }