Refactored pneumatics based on the more advanced 2012 code vs the 2013 code.
Fix design flaw: only create hardware in init() method.

Creating hardware in member fields (or constructors) could throw exceptions if things are commented out, since the code is still run. By putting everything into init(), we can be sure the subsystem is totally inactive, with no hardware created, unless init() is called.
Added ball sensor to grabber. Using a DIO for now, but might be analog later.
Sensor is active low. Hide that from outside the subsystem.
Added sensor-based grab to replace the Arduino in first prototype.
Added button to arm sensor based grab.
Added button to cancel an armed sensor-based grab.

Cancel either an armed state or a grabbed state by forcing SetBallGrabber(false) to run. This will interrupt the GrabBallWhenSensed command if it is running, whether it is in either sWAITING or sCLOSED. If the grabber was closed, this has the effect of opening it. Pressing the manual grab button would also do this, but if the we were in sWAITING, you'd get a glitch as the grabber tries to close while the button is down. This setup avoids that behavior.