Put NaNs in F or Gradient only if X has changed.

local.go:evaluate() puts unconditionally a NaN in location.F if
GradientEval is requested, or into location.Gradient if FunctionEval is
requested. This may cause some issues especially in Recorders.
Therefore, use NaNs only if location.X and xNext are different.

Fixes #11