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/third_party/gperftools/BUILD b/third_party/gperftools/BUILD
index 14ac821..3eaab4b 100644
--- a/third_party/gperftools/BUILD
+++ b/third_party/gperftools/BUILD
@@ -32,8 +32,9 @@
     "-Wno-switch-enum",
     "-Wno-error=cast-align",
     "-Wno-error=cast-qual",
-    "-Wno-deprecated-volatile",
     "-Wno-cast-qual",
+    "-Wno-array-bounds",
+    "-Wno-cast-function-type",
 
     # //build_tests:tcmalloc_build_test relies on this.
     "-DENABLE_LARGE_ALLOC_REPORT=1",
@@ -128,7 +129,10 @@
         # disable the analysis to simplify.
         "-Wno-thread-safety-analysis",
     ],
-    "gcc": [],
+    "gcc": [
+        "-Wno-use-after-free",
+        "-Wno-ignored-qualifiers",
+    ],
 })
 
 cc_library(