Mixed-integer programming model and branch-and-price-and-cut algorithm for urban bus network design and timetabling