Rework Particle, Bond and Particle container to use uuids

This PR updates the `Particle`, `Bond` and `ParticleContainer` to support and use the uuids for the component ids.

in more detail
- Bond and Particle now use uuids.
- The Bond and Particle classes use a `classmethod` to clone the contents from a related class instead of using deepcopy (similar to the pattern used in  the mesh components)
- The ParticleContainer now uses the uuid.uuid4 method to create new uuids
- Tests have been updated to use uuids