Multiple distinct ring corrections are taken into account

Before this commit, molecules with multiple rings, would only
get 1 ring correction assigned. For unfused rings, such as 3-cyclo-
pentyl-cyclopentene, two distinct ring corrections, i.e. a cyclopentane
and a cyclopentene RC would be appropriate.

Therefore, ThermoGAGroupLibrary.findRingCorrection() is modified.
This is done by returning a Set of ThermoGAValues, rather than a
single ThermoGAValue.

In terms of the alogorithm, a RC is added to the (returned) Set if and
only if it has the same 'depth' as the deepest Stack that is found so far.
This implies that for now, all RC's should have the same depth (i.e. L2),
otherwise trouble is ahead.

Because a ThermoGAValue is added to the Set of unique elements, an
equals(Object o) method is added to the FunctionalGroup type, comparing
the names of both FunctionalGroups.

Because a Set is returned, a new plus(Set<ThermoGAValue>) mehthod
in ThermoData is created.

Finally, because now multiple distinct RCs are returned I renamed the
methods to getRingCorrections, findCorrections, etc... (instead of
the singular name.

One flaw: a molecule with two identical RCs, e.g. cyclopentyl-cyclopentane,
i.e. two cyclopentane RCs, will currently not be accounted for. This
is because a Set only takes unique RCs.
identation fix
Multiple identical Ring straings are recognized

In the previous commit, only distinct RSCs could be accounted for,
because of the nature of the Set type, not allowing duplicate keys.

Now, a Map type is used in which the RSC is mapped to the number of
times it has been identified in the Graph.

Signatures of all corresponding methods are modified.

In terms of the algorithm, the following changes are applied:
-instead of iterating over all the Nodes of the Graph, we now iterate
over only the ring nodes. Two separate loops, one for the SSSRings,
and one for the Nodes inside a SSSRing. A List of Sets of RingNodes are
fetched by a new method in the Graph type, called .getCycleNodes().

Furthermore, to anticipate inaccurate predictions of fused ring systems
using single ring strain corrections, fused ring atoms are perceived
by a new method in Graph: .getFusedRingAtoms(). A comment is appended
to the ChemGraph, warning for the presence of fused ring systems.

Fused ring atoms are perceived by first retrieving a List of Sets of Ring
Nodes (cf. supra), and then iteratively checking if Nodes are present
in multiple Sets of RingNodes. These fused ring atoms are returned as a
List.

As a side comment, I believe ring perception algorithms should not
be part of the Graph type, but be externalized, to keep the
core types of RMG (Species, ChemGraph, Graph, etc...) as lightweight as
possible...
indentation fix
removed debugging System.out.println lines
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge branch 'Aromaticity_Perception'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge branch 'RSC'
Merge remote-tracking branch 'upstream/master'
Merge branch 'master' of git@github.com:GreenGroup/RMG-Java into RSC
removed unused, and deprecated import statement

the import from the sun API was deprecated, but not used anymore
in ThermoData type.
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
return empty Map instead of null object

the null object was not correctly caught downstream.
Merge remote-tracking branch 'origin/RSC' into RSC
append thermo comments of parent molecule for radicals

append info on identified groups in saturated R-H molecule in case
a radical molecule is calculated using HBI method.

info is appended in thermo comments of original chem graph.