Finishing touches to particle culling

Still would like to improve performance (don't use temp.Add - keep a
temp array in memory, just as with propagatedParticles).

New Feature: If the particles are started as random, new random
particles are only introduced if the particles don't seem to be a good
estimate for the robot. In addition, these new particles don't affect
position estimate until they have a weight to support them. This means
that once the robot has been clumped with particles, an introduction of
random particles doesn't disturb the position estimate.