Add bonds to close the rings

The RingClosures map is no longer a map of int to int list that records the
positions of all ring closure labels. Now it will only contain at most one value
for each ring closure label.

When we process a ring closure label, check to see if there is an entry in the
map already. If there is, then we create the bond to close the label and
remove it from the map. Otherwise, add it to the map to be closed later.

Any tests running on a SMILES string containing ring closures
have been updated with the expected bonds containing the
ring closing bonds.

Current limitations
* It doesn't do any validation of the labels, (e.g., there should be nothing
left in the RingClosures map at the end)
* It assumes all closing bonds are of type Default (which is not always the case)