Sequestering exceptions, handling hardware resets, Robot class

-StateMachine and RobotMotion now owned by a Robot class
-MotorDriver now traps exceptions, does not throw from its constructor, and can
 be reset by the looper.
-StateMachine and State are generics, and states are passed the type T to
 operate on (in our case, a Robot instance)