extract the process_sail function

TODO: use jobs to move units safely.
add a test for sailing

also fixing a couple of tests that were exercising the parser for no
good reason.