After talking with Dina, I realized that there isn't really any
circumstance under which it makes sense to use the ParticleIndex (or
RestraintIndex) objects as one is always better off storing the
Particle pointers. I propose removing the indexes and replacing the
storage with a boost intrusive list. This will make it clear to new
people that they should not be using the Indexes and make various code
much simpler (since the range will always be full, even after
deletions).
Likewise the ParticleIterators in model probably should be hidden so
people aren't tempted to use them, but doing this is complicated by
the macros being reused in many places and so is not as trivial a
change.