1) Introduces `BondDescriptorAtom`.
* This is effectively the same as `BondDescriptor` was previously. Now `BondDescriptor` unique within a
stochastic object and `BondDescriptorAtom` now links to the unique `BondDescritor`.
* Motivation: it makes validation of bonding descriptors simpler
2) Additional validation add around bonding descriptors.