Preserve ordering of atoms when reading from XYZ coordinates.

We need to sort them for the connect the dots algorithm, but in general
better to preserve the ordering. This way the connect the dots is done 
on a sorted list, which is then abandoned.
First unit tests for Molecule.fromXYZ method

Does rudimentary check, and prints to console.
We don't yet get the bonds right, or make wildcards.
added Molecule.toSingleBonds() method

This returns a copy of the current molecule with only single bonds.
This is helpful for isomorphism comparisons with things that were made
via fromXYZ or via connectTheDots, which do not attempt to perceieve bond orders.
i.e. for use in checking the QM calculation made the right molecule.

Also created unit test for it.
Use new isomorphism check when testing gaussian IRC calculations.

Much of this should be generalized, so only the gaussian-specific bits of parsing
are in this Class.
Merged changes to handling graph matching for IRC calculations