A semi-analytical approach for solving the bottleneck model with general user heterogeneity. (January 2015)