NewFeature: Added a optimizer using finite differences to compute the gradient

We compute the gradient by pertubating the control.