software_endstops: use *_MIN_POS and *_MAX_POS for arcs
If [XYZ]_HOME_POS and [XYZ]_MIN_POS aren't 0, these corrections are
wrong. Use the same logic as in Marlin.pde:prepare_move: ie, clamp to
[XYZ]_{MIN,MAX}_POS.
While we're here, put this cut-and-paste code in a function
clamp_to_software_endstops.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>