From my experince a few (read many) years back of creating an autonomous robot, keeping the drive motor control seperate from the servo control is critical for reliability. Personally I'd use a multi-way PWM output shield to drive the servos and two channels of that to drive external PWM controllers for the motors. That way you can keep the Arduino and low curent systems away from the high current and position the motor controllers to optimise (e.g. shorten) the high current wiring. Also motors controllers have a habit of going pop and keeping them seperate can save money in the long run.