Freeze certain atoms before optimizing for double-ended
Bounds matrix fixing and molecule checks
Smooth matrix before editing - not working (yet)
Check for errors in the entire the bounds matrix

Smoothing the bounds matrix prior to editing it for the
double ended geometries provides a good starting matrix.
However this needs to be further edited as we may have
introduced some inconsistencies.
Removed bounds matrix smoothing before editing.
Checks the bounds matrix for strange limits (hopefully).
Script to run transition state searches
Change the lower limit collision prevention in bounds matrix manipulation.

THis is to prevent the lower limit of ij from being higher than allowed
by ik-kj distances.
Re-enable the Embedding and UFF optimization steps.

Also restructured an if/else block to reduce the depth.
Split generateTSGeometry into generateTSGeometryDoubleEnded and generateTSGeometryDirectGuess

This commit shouldn't change how anything functions, just where it is defined.
The two functions seem to return different things. I tried to summarize in the docstrings.
Refactoring: made a utility function matrixToString(matrix) for logging purposes.

Also renamed "setRBM" to "reactantSmoothingSuccessful" and equivalent for setPBM
(these are boolean flags returned by RDKit)
tsScript reports which reaction it's on