introduce "machine_top" option; some cleanup
add option to only do waterline milling; rename some functions for clarity
factor out step-down computation