A Constraint Programming Approach to Optimise Sugarcane Rail Operations