A School Bus Routing Heuristic Algorithm Allowing Heterogeneous Fleets and Bus Stop Selection