Ring detection work in progress.
More core towards normalisation.
First cut code for detecting rings.

* Code is work in progress.
* Several classes of spurious rings will show up!
Ring detection code passes Citalopram test!

* Added a test for the specific case of Citalopram.
Added a few more tests for ring detection.

* New tests demonstrate detection of spurious rings.
Mostly working code for ring detection.

* Ring systems are detected too.
* Ring pruning can be tuned to employ two-ring bridging conditions
  to fine tune it, based on counter examples.
Implemented the fine tuning mentioned in the previous commit log.

* Added a test for Norbornane.
* Re-checked the result for Adamantane.
* Dual-Adamantane is not yet checked at all.
Refined spurious ring detection.

* Added a condition to see if any of the non-bridge atoms in a
  candidate ring is a junction.  If so, the candidate is spurious.
Refactored ring pruning logic to make it easier to read.

* Ring detection tests now produce more readable output.
* Ring detection tests now have assertions on the number of rings.