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/json_to_flatbuffer.cc b/aos/json_to_flatbuffer.cc
index 34cdffe..9549c1f 100644
--- a/aos/json_to_flatbuffer.cc
+++ b/aos/json_to_flatbuffer.cc
@@ -3,7 +3,8 @@
 #include <cstddef>
 #include "stdio.h"
 
-#include "absl/strings/string_view.h"
+#include <string_view>
+
 #include "aos/flatbuffer_utils.h"
 #include "aos/json_tokenizer.h"
 #include "flatbuffers/flatbuffers.h"
@@ -124,7 +125,7 @@
 
   // Parses the json into a flatbuffer.  Returns either an empty vector on
   // error, or a vector with the flatbuffer data in it.
-  flatbuffers::DetachedBuffer Parse(const absl::string_view data,
+  flatbuffers::DetachedBuffer Parse(const std::string_view data,
                                     const flatbuffers::TypeTable *typetable) {
     flatbuffers::uoffset_t end = 0;
     bool result = DoParse(typetable, data, &end);
@@ -149,7 +150,8 @@
   // Parses the flatbuffer.  This is a second method so we can do easier
   // cleanup at the top level.  Returns true on success.
   bool DoParse(const flatbuffers::TypeTable *typetable,
-               const absl::string_view data, flatbuffers::uoffset_t *table_end);
+               const std::string_view data,
+               flatbuffers::uoffset_t *table_end);
 
   // Adds *_value for the provided field.  If we are in a vector, queues the
   // data up in vector_elements.  Returns true on success.
@@ -200,7 +202,7 @@
 };
 
 bool JsonParser::DoParse(const flatbuffers::TypeTable *typetable,
-                         const absl::string_view data,
+                         const std::string_view data,
                          flatbuffers::uoffset_t *table_end) {
   ::std::vector<const flatbuffers::TypeTable *> stack;
 
@@ -765,7 +767,8 @@
 }  // namespace
 
 flatbuffers::DetachedBuffer JsonToFlatbuffer(
-    const absl::string_view data, const flatbuffers::TypeTable *typetable) {
+    const std::string_view data,
+    const flatbuffers::TypeTable *typetable) {
   JsonParser p;
   return p.Parse(data, typetable);
 }