Ensure ParticleBroker only returns vectors with same SimID
SimKernel(MT) receives a vector of particles from the broker, and in the non-MT case retrieves the SimID of the first particle, and then use that for all particles in the vector.
Sometimes this lead to particles being sent to the wrong simulator.
I have now added a check inside ParticleBroker to ensure that all particles in a vector have the same SimID.
Not sure how to test the code though! It runs, but naturally the results change. In theory, they should change for the better.