refactor calculation of range resize and range move states, clean up mouse events to prevent multiple callback firing, update documentation to include callback