Move most handling of steps from arm_solution,Robot,Planner to StepperMotor
Arm Solutions: rename fields to reflect appropriate function
Robot: remember to grab steps_per_mm from config
StepperMotor, Planner: fix a couple of potential rounding errors
Planner: steps is a delta, not absolute!
StepperMotor has its own Pins. Copy data into them, and use accessor methods rather than reaching in and touching directly
Pin: built-in copy ctor is adequate
Planner: accept unit vector instead of axis deltas
Robot,StepperMotor: per-actuator speed limits
StepperMotor: just shifting things around
Pin: code cleanup, no functionality changes
Robot: feed correct positions to actuators when reset_axis_position is called
Consistently use seconds (mm/s, mm/s^2, steps/s, etc) internally, instead of switching between minutes and seconds arbitrarily
Planner: mixed up sizeof(pointer) with sizeof(array)
Robot: convert cartesian speed limits to mm/s