Add functions to remove particles. When a particle is removed, it is first flagged as inhibited. Then ignored in all interactions. We eliminate them from memory at the next rebuild.
Also fixes an error reported from the undefined behaviour sanitizer and fixes #470 (closed).