ENH: Added an additional (optional) downhill check based on energies

Closed username-removed-151986 requested to merge (removed):fire_downhill into master

Downhill check compares potential energies in the FIRE algorithm. This can detect numerical issues where at large time steps the step is uphill in energy even though locall v*f is positive. The default still points to the current implementation of FIRE.