add a vcup test; improve error handling; fix crap

*fix MoveVCupTo*() methods
*add a VCup test
*improve error handling to catch all instances of hitting the
limitswitches
**before there was a bug where we would only check before we started
rotating, not during
**improve error fallback mode, i think