Fix information methods in Collector.

Collector now provides a getUpperLimitSwitch() method to inspect
the state of the limit switch. It also now correctly reports its deployed
and undeployed states.
Fix safety checks in Shooter.

Shooter now correctly checks the state of the collector before allowing
itself to fire.
Add dashboard data output to Zeke.

The robot now reports the state of various subsystems to the dashboard
over NetworkTables.
Add Gyro related methods to DrivetrainRotation.

DrivetrainRotation now provides access to the raw Gyro object and can
act as a PIDOutput.
Adjust timing of LowerShooterAfterWaitCommand.
Add PID systems to DriveXDistanceCommand.

DriveXDistanceCommand can be configured to control its rotation while
driving forward to stay in a straight line.
Add DriveXDistanceCommandNoPID to the project.

This command drives the robot forward until the ultrasonic sensor
reports a certain distance and does not use PID to control the robot
rotation.
Add second ball collecting abilities to AutonomousCommand.

Also configure AutonomousCommand to not use PID to control robot rotation.