improvements

- safe copying of dictionaries for compounds
- cleaner method of creating bonds
- cleaner __repr__ of Bond objects
- better way of creating the atom/bond dictionaries in Compound objects

Probably my last semi-significant commit until I hash out exactly how I
want my dictionary tree/node/thingies to work