Update to the 2019 wpilib

Lots of gratuitious incompatibilities to deal with. Started sanifying a
few classes rather than figuring out how to update them too. Has not yet
been tested on a robot, but everything still builds so it should be
fine.

Also ported over our FPGA timestamp fixes, which were previously only in
allwpilib_2018.

Also upgraded to the new roborio compiler, which has to happen at the
same time due to incompatible pre-compiled libraries.

Change-Id: Ib9b6ad8fc0112d90a9855afe1b706588ef4ebde9
diff --git a/frc971/wpilib/ahal/Utility.h b/frc971/wpilib/ahal/Utility.h
index bf97692..be8dc35 100644
--- a/frc971/wpilib/ahal/Utility.h
+++ b/frc971/wpilib/ahal/Utility.h
@@ -15,7 +15,8 @@
 
 #include <string>
 
-#include "llvm/StringRef.h"
+#include "wpi/StringRef.h"
+#include "wpi/Twine.h"
 
 #define wpi_assert(condition) \
   wpi_assert_impl(condition, #condition, "", __FILE__, __LINE__, __FUNCTION__)
@@ -34,18 +35,19 @@
   wpi_assertNotEqual_impl(a, b, #a, #b, message, __FILE__, __LINE__, \
                           __FUNCTION__)
 
-bool wpi_assert_impl(bool conditionValue, llvm::StringRef conditionText,
-                     llvm::StringRef message, llvm::StringRef fileName,
-                     int lineNumber, llvm::StringRef funcName);
-bool wpi_assertEqual_impl(int valueA, int valueB, llvm::StringRef valueAString,
-                          llvm::StringRef valueBString, llvm::StringRef message,
-                          llvm::StringRef fileName, int lineNumber,
-                          llvm::StringRef funcName);
+bool wpi_assert_impl(bool conditionValue, const wpi::Twine &conditionText,
+                     const wpi::Twine &message, wpi::StringRef fileName,
+                     int lineNumber, wpi::StringRef funcName);
+bool wpi_assertEqual_impl(int valueA, int valueB,
+                          const wpi::Twine &valueAString,
+                          const wpi::Twine &valueBString,
+                          const wpi::Twine &message, wpi::StringRef fileName,
+                          int lineNumber, wpi::StringRef funcName);
 bool wpi_assertNotEqual_impl(int valueA, int valueB,
-                             llvm::StringRef valueAString,
-                             llvm::StringRef valueBString,
-                             llvm::StringRef message, llvm::StringRef fileName,
-                             int lineNumber, llvm::StringRef funcName);
+                             const wpi::Twine &valueAString,
+                             const wpi::Twine &valueBString,
+                             const wpi::Twine &message, wpi::StringRef fileName,
+                             int lineNumber, wpi::StringRef funcName);
 
 void wpi_suspendOnAssertEnabled(bool enabled);