Maintain rank stability when ranking invariants (CANON). Previously unique classes were labelled as lowest - now the lowest ranks keep the lowest label. Not only is this less operations (and faster) but it is also required for some procedures (e.g. canonical tautomer generation). These changes alter the canonical SMILES order - example 'NC(O)O' is now 'OC(O)N'. Notice how the oxygen labels are now lower (even though the nitrogen and carbon were unique to begin with).

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Changes to unique SMILES output order - note the tests were also updated to be easier to fix in future.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>