Restructure several commands and subsystems to allow for easier usage

Structure
- Create a ToggableSubsytem class that extends Subsystem and handles
  subsystems with two discreet states.
- Create a Toggle Command that switches the state of a
  ToggableSubsystem.
- Create a CommandBase that extends Command and provides default
  implementations for every method in Command.
- Create a OneShotCommand that extends CommandBase and can only be
  executed once.
- Remove the commands that were used before to toggle subsystems.
- Create a Nets class that extends ToggableSubsystem.
- Update RollerArm to use the new ToggableSubsystem
Replace all uses of System.out with the improved CompetitionRobot.output
Documentation and structure improvements for all of the drive commands.
Documentation and structure improvements for all of the autonomous commands.
Improve documentation in the command groups and removed a duplicate class
Improve documentation in all of the net commands.
Improve documentation and structure in all the pneumatic commands
Modify roller commands to use new base commands
Remove unused class
Modify Motor to use an enum to specify the type of speed controller
Improve documentation in DriveTrain and use new motor enum
Implement the side facing ultrasonics
Improve documentation in Toggle and mark old Net fields as deprecated.
Deprecate a class and add a clamp method to Transform
Set ultrasonic mode to automatic and add a print.
Add null checks to enum comparators
Improve function and documentation in LimitedMotor
Modify Nets to directly use LimitedMotor and deprecate Net
Modify CompetitionRobot to work with new Nets
Fix several logic errors

CompetitionRobot
- Fixed rounding error in time calculation.

RollerArm
- Moved logicalState assignments into the public use methods.
- Removed magnet sensors on solenoids.

Motor
- Added a TODO.