add a trust radius computation to the maximum uphill step

This adjusts the maximum uphill step based on how accurate previous
uphill steps have been
modify LBFGS and MYLBFGS so it can be safely restarted from new coords

I save the last step instead of the last coords.  That way the memory is
updated correctly before each step.  It would be cleaner to update the
memory at the end of each step, but MYLBFGS doesn't do it that way and
at the moment I want to keep LBFGS and MYLBFGS as similar as possible.
updates to findTransitionState

primarily use get_state() and set_state() to reset the state for
transverse optimization.
update to FindTransitionState to agree with OPTIM

H0 for Lowest eigenvector search is no longer saved from previous
iteration
redo transverse optimization in class _TransverseWalker
pass tangent_space_quench_params to minimizer

Also, remvove mention of H0 and _transverse_state
get inverted_gradient working in FindTransitionState again
add true nfev count to find lowest eigenvalue functions
findTS: do at least on iteration in finding the lowest eigenvector

also, use the new FindLowestEigenvector class
change overlap criterion in FindTransitonState

change it from .999 to .9999 to agree with optim.
turn off some print statements optionally
add documentation to LBFGS
add comments to ts and lowest eig search routines
findLowestEigenVector now uses class FindLowestEigenVector
add documentation to transition state search
add a safety check when accessing the true energy and coords
add optimizer tests for nfev
add check for nfev in transition state search

it's broken at the moment
fix bug in lbfgs where message was not initialized

This bug showed up when a line search error occurred

thanks to robert for reporting it
don't return nfev in FindTransitionState

it's currently not correct.  I'm working on why