add lerp_sat for any iterator-pair
add lerp_sat for ranges
use a more general return type declaration
extract lerp algorithm to its own files