Update googletest to latest master

Local changes required:
-Added googletest tests to CI script.
-For merge conflicts, preferred upstream in all cases.
-Added in a -Wno-unused-parameters, and removed some "-pthread"'s to
 clean up obnoxious compiler warnings about unused flags.
-Added rules_python to WORKSPACE to make googletest happy.
-Update *_CASE_P to *_SUITE_P

Merge commit '33cf340fc114ccb0573488547776b0a8966b8108' into HEAD

Change-Id: Ie0caf2e61afe569038a25380e1ed5f8b41595900
diff --git a/frc971/control_loops/drivetrain/camera_test.cc b/frc971/control_loops/drivetrain/camera_test.cc
index c830038..a55ebad 100644
--- a/frc971/control_loops/drivetrain/camera_test.cc
+++ b/frc971/control_loops/drivetrain/camera_test.cc
@@ -197,7 +197,7 @@
   EXPECT_LT(5, view.noise.height);
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     InvalidMeasurements, CameraViewParamTest,
     ::testing::Values(
         // heading, distance, height, skew
diff --git a/frc971/control_loops/drivetrain/distance_spline_test.cc b/frc971/control_loops/drivetrain/distance_spline_test.cc
index 1ed756a..5b244a6 100644
--- a/frc971/control_loops/drivetrain/distance_spline_test.cc
+++ b/frc971/control_loops/drivetrain/distance_spline_test.cc
@@ -171,7 +171,7 @@
   }
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     DistanceSplineTest, ParameterizedDistanceSplineTest,
     ::testing::Values(
         ::std::vector<Spline>(
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index 1b353a1..64fb0b8 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -868,7 +868,7 @@
   VerifyNearSplineGoal();
 }
 
-INSTANTIATE_TEST_CASE_P(DriveSplinesForwardsAndBackwards,
+INSTANTIATE_TEST_SUITE_P(DriveSplinesForwardsAndBackwards,
                         DrivetrainBackwardsParamTest,
                         ::testing::Values(false, true));
 
diff --git a/frc971/control_loops/drivetrain/hybrid_ekf_test.cc b/frc971/control_loops/drivetrain/hybrid_ekf_test.cc
index 9d9517d..b491719 100644
--- a/frc971/control_loops/drivetrain/hybrid_ekf_test.cc
+++ b/frc971/control_loops/drivetrain/hybrid_ekf_test.cc
@@ -159,7 +159,7 @@
   }
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     CheckMathTest, HybridEkfDiffEqTest,
     ::testing::Values(DiffEqInputs{State::Zero(), Input::Zero(), false},
                       DiffEqInputs{State::Zero(), Input::Zero(), true},
@@ -337,7 +337,7 @@
 }
 
 // Ensure that we check kSaveSamples - 1, for potential corner cases.
-INSTANTIATE_TEST_CASE_P(OldCorrectionTest, HybridEkfOldCorrectionsTest,
+INSTANTIATE_TEST_SUITE_P(OldCorrectionTest, HybridEkfOldCorrectionsTest,
                         ::testing::Values(0, 1, 10,
                                           HybridEkf<>::kSaveSamples - 1));
 
diff --git a/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc b/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc
index c6bedf6..bb872dc 100644
--- a/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc
+++ b/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc
@@ -300,7 +300,7 @@
   target_selector_.set_has_target(true);
   // Start the state at zero and then put the target in a
   state_.setZero();
-  driver_model_ = [this](const ::Eigen::Matrix<double, 5, 1> &state) {
+  driver_model_ = [](const ::Eigen::Matrix<double, 5, 1> &state) {
     return 0.2 *
            (state.topRows<2>() - GetParam().abs_pos().topRows<2>()).norm();
   };
@@ -308,7 +308,7 @@
   RunForTime(chrono::seconds(10));
   VerifyNearGoal();
 }
-INSTANTIATE_TEST_CASE_P(TargetPosTest, LineFollowDrivetrainTargetParamTest,
+INSTANTIATE_TEST_SUITE_P(TargetPosTest, LineFollowDrivetrainTargetParamTest,
                         ::testing::Values(Pose({0.0, 0.0, 0.0}, 0.0),
                                           Pose({1.0, 0.0, 0.0}, 0.0),
                                           Pose({3.0, 1.0, 0.0}, 0.0),
@@ -329,7 +329,7 @@
   VerifyNearGoal();
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     PositionAndModelTest, LineFollowDrivetrainParamTest,
     ::testing::Combine(
         ::testing::Values(
diff --git a/frc971/control_loops/drivetrain/trajectory_test.cc b/frc971/control_loops/drivetrain/trajectory_test.cc
index c13d844..806e020 100644
--- a/frc971/control_loops/drivetrain/trajectory_test.cc
+++ b/frc971/control_loops/drivetrain/trajectory_test.cc
@@ -529,7 +529,7 @@
   trajectory->LimitVelocity(1.5, 1.5, 0.5);
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     SplineTest, ParameterizedSplineTest,
     ::testing::Values(
         MakeSplineTestParams(
diff --git a/frc971/control_loops/static_zeroing_single_dof_profiled_subsystem_test.cc b/frc971/control_loops/static_zeroing_single_dof_profiled_subsystem_test.cc
index 026d372..3dbaf9a 100644
--- a/frc971/control_loops/static_zeroing_single_dof_profiled_subsystem_test.cc
+++ b/frc971/control_loops/static_zeroing_single_dof_profiled_subsystem_test.cc
@@ -433,7 +433,7 @@
   TestIntakeSystemSimulation<SZSDPS, QueueGroup> subsystem_plant_;
 };
 
-TYPED_TEST_CASE_P(IntakeSystemTest);
+TYPED_TEST_SUITE_P(IntakeSystemTest);
 
 // Tests that the subsystem does nothing when the goal is zero.
 TYPED_TEST_P(IntakeSystemTest, DoesNothing) {
@@ -819,7 +819,7 @@
   EXPECT_EQ(this->subsystem()->state(), TestFixture::SZSDPS::State::ESTOP);
 }
 
-REGISTER_TYPED_TEST_CASE_P(IntakeSystemTest, DoesNothing, ReachesGoal,
+REGISTER_TYPED_TEST_SUITE_P(IntakeSystemTest, DoesNothing, ReachesGoal,
                            FunctionsWhenProfileDisabled,
                            MaintainConstantVelocityWithoutProfile,
                            SaturationTest, RespectsRange, ZeroTest, ZeroNoGoal,
@@ -827,7 +827,7 @@
                            ResetTest, DisabledGoalTest, DisabledZeroTest,
                            MinPositionTest, MaxPositionTest, NullGoalTest,
                            ZeroingErrorTest);
-INSTANTIATE_TYPED_TEST_CASE_P(My, IntakeSystemTest, TestTypes);
+INSTANTIATE_TYPED_TEST_SUITE_P(My, IntakeSystemTest, TestTypes);
 
 }  // namespace control_loops
 }  // namespace frc971