run
This function should be run repeatedly every loop. It adds commands if the corresponding Gamepad buttons are being pushed, it runs the periodic functions in Subsystems, it schedules & cancels any commands that need to be started or stopped, and it executes running commands. The reason why it uses a separate function to cancel commands instead of cancelling them itself is because removing items from a list while iterating through that list is a wacky idea.