I had mentioned this a while ago and would like to bring it up again
since now seems like a good time to deal with it: I would like to
remove the particle storage in the Restraint base class.

Sounds reasonable to me. But why not go further and port existing
restraints not by using the IMP_LIST macros but by giving them
containers? Do you see any need for a restraint containing a particle
list that a container would not fulfill?

No particular reason, just more work and requires actual interface
changes. I'd be for it in general though.