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 ParticleContainer now uses the uuid.uuid4 method to create new uuids
- Tests have been updated to use uuids
- I also did some cleanup in the code: 
  - No need to reraise exceptions for which we do not change the type or message
  - 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)
   - Do not provide specific test message when the default assert message provides more info.
   - Use the `import... from` pattern 
   - particle_ids and coordinates attributes are now tuples



yes, seperate PR makes sense.