Joint Routing, Channel Assignment, and Scheduling for Throughput Maximization in General Interference Models