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 am having trouble to get rid of these functions in TakeStep.
At the moment they are accessed via a pointer to TakeStep in the report function of AdaptiveTakeStep.