Added the loadbalancing + runtime sorting option into emcee

1) Added a loadbalancing option when using the MPIPool object. If ntasks > ncpu, then each worker is first assigned a task and then the remaining tasks are assigned as the workers get done. 

2) If the runtime depends very heavily on one/some parameters, then sorting the initial task list in descending order of expected runtime greatly improves performance. The most cpu-intensive jobs get sent out first, and then the less cpu-intensive ones. This way, the latency inherent in the longest jobs can be hidden. This option is built into the EnsembleSampler class -- so that single/multiprocessing/MPI all can benefit. 

Obviously, the combination of runtime + loadbalancing option has an overhead and should only be used if the typical run-times are > 0.5 s (and when there is a lot of variance)

![emcee-loadbalancing](https://f.cloud.github.com/assets/3004941/1904979/ccf5effe-7c97-11e3-900c-4c22d57757cb.png)