Add swap particle move takestep

This adds a takestep class doing particle pair swapping.
To accommodate that, mc is changed such that it loops over a vector of steps (moves) similar to the looping over actions and configuration tests.

I don't think `get_min_acceptance_ratio` and `get_max_acceptance_ratio` should to be part of TakeStep.  I think they can be attributes of the adaptive takestep classes.  All TakeStep needs is to know *how* to change it's parameters to increase or decrease the acceptance ratio.