Update WPILib, roborio compilers, and CTRE Phoenix libraries

This borrows heavily from work that Ravago did to initially get this
stuff working.

Tested rudimentary functionality on a test bench, ensured that we could:
* Enable the robot.
* Read joystick and button values.
* Switch between auto and teleop modes.
* Read sensor values (encoder, absolute encoder, potentiometer).
* Read PDP values.
* Drive PWM motors.
* Drive CANivore motors.

Non-WPILib changes are made to accommodate the upgrade roborio
compiler's improved pickiness.

Merge commit '125aac16d9bf03c833ffa18de2f113a33758a4b8' into HEAD

Change-Id: I8648956fb7517b2d784bf58e0a236742af7a306a
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/y2019/image_streamer/BUILD b/y2019/image_streamer/BUILD
index f394b91..19e7b43 100644
--- a/y2019/image_streamer/BUILD
+++ b/y2019/image_streamer/BUILD
@@ -1,3 +1,5 @@
+load("@org_frc971//tools/build_rules:select.bzl", "compiler_select")
+
 package(default_visibility = ["//visibility:public"])
 
 cc_binary(
@@ -28,7 +30,14 @@
         "-Wno-cast-align",
         "-Wno-cast-qual",
         "-Wno-error=type-limits",
-    ],
+    ] + compiler_select({
+        "clang": [],
+        "gcc": [
+            "-Wno-misleading-indentation",
+            "-Wno-char-subscripts",
+            "-Wno-class-memaccess",
+        ],
+    }),
     target_compatible_with = ["@platforms//os:linux"],
     deps = [
         "//third_party/cimg:CImg",