Working on giving more updates on parameter changes
Restores initial force field if no improvement
More logging for differentiation
Checking how gradient generates new parameter sets.

Out of 8 bond force constant parameters that I tested, my code
was giving the opposite of the 1st derivative obtained from
Elaine's code for 2 of the 8 parameters.

Upon inspection, it appears that somehow the original code would
occassionally incorrectly mistake a parmater increase with a
parameter decrease and vice versa.

The command...
    ParMod -i mm3.fld -z -dc paropt -o par.mult
... works just fine, and generates par.mult with the correct
parameter steps in the proper order. However, the command...
    ParMod -i mm3.fld -r mm3. -z -m par.mult
... can upset this order. For the 4th parameter (out of 8), the
decrement happened before the increment. In other words, mm3.7
had a parameter decrement, and mm3.8 had the increment, whereas
the opposite should be true. The same occured for the 6th
parameter (mm3.11 and mm3.12). I have no idea why this only
occurs for some parameters, and have not tested it beyond this
single case.
Removed steps.yaml - dictionary moved inside constants.py
Made gradient methods more robust.

The gradient methods can now easily support multiple maximum radii
of parameter changes, cutoffs, factors, etc. There is also an
argument, --default, that just uses the recommended (by me) settings.
Improved method name generation when max radius used