Weighted carrier cost uses cost_per_mj if present

Instead of traversing all the way to the right-most carrier, stop early
if a traversal path encounters a carrier with a cost_per_mj defined.

Closes #707