Added the pairwise Metropolis Markov chain method proposed by Chodera and Shirts. I didn't control too well for equal performance, but in terms of the current implentation this seems to be considerably more expensive than the "pairwise independence sampling" routine that Emilio derived. I think the difference comes down to the Boltzmann weights being calculated in serial in the Metropolis method, but with a vectorized numpy call in the independence sampling method. In any event, one can try for themselves by replacing the function call in doExchanges (TODO: make this possible without changing the code?)