I changed the interfaces of DistanceRestraint and ExclusionRestraint to make them more consistent and more general.
Warning, it is quite long due to many similar changes in the test cases. Yeah for sed, but I wouldn't want to read through the diff :-)
DistanceRestraint now takes a pair of ParticleIndexes and a ScoreFunc which it then owns. I also removed the constructor with a passed radius as that does add any power and adds another path which has to be tested and maintained.
ExclusionRestraint takes a list or lists of ParticleIndexes (instead of ints). Various unused member variables are removed.
Restraint::show now has a default argument so it can be called from python.
Applying it requires first applying the decorators patch I sent before (since I removed the redundant creation of the FloatKeys in DistanceRestraint). It might also require the more minor kernel patch also included.