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_tokenizer.h b/aos/json_tokenizer.h
index 3058d7d..5b41da1 100644
--- a/aos/json_tokenizer.h
+++ b/aos/json_tokenizer.h
@@ -2,10 +2,9 @@
 #define AOS_JSON_TOKENIZER_H_
 
 #include <string>
+#include <string_view>
 #include <vector>
 
-#include "absl/strings/string_view.h"
-
 namespace aos {
 
 // This class implements the state machine at json.org
@@ -14,7 +13,7 @@
 // whitespace.
 class Tokenizer {
  public:
-  Tokenizer(const absl::string_view data) : data_(data) {}
+  Tokenizer(const std::string_view data) : data_(data) {}
 
   enum class TokenType {
     kEnd,
@@ -48,7 +47,7 @@
   // Returns true if we are at the end of the input.
   bool AtEnd() { return data_.size() == 0; }
 
-  const absl::string_view data_left() const { return data_; }
+  const std::string_view data_left() const { return data_; }
 
  private:
   // Consumes a single character.
@@ -87,7 +86,7 @@
   State state_ = State::kExpectObjectStart;
 
   // Data pointer.
-  absl::string_view data_;
+  std::string_view data_;
   // Current line number used for printing debug.
   int linenumber_ = 0;