Re-implemented FIRE, added orthogonalization classes and numerical method to compute lowest eigenvalue, added interface to distance to pass a pointer to the distance class without templating the user class