Stochastic Gradient Descent Minimizer.
Note: If you want a fast SGD minimizer, then you probably want to use
StochasticInPlaceMinimizer, not this class!
The basic way to use the minimizer is with a null constructor, then
the simple minimize method:

Attempts to find an unconstrained minimum of the objective
function starting at initial, accurate to
within functionTolerance (normally implemented as
a multiplier of the range value to give range tolerance).

Attempts to find an unconstrained minimum of the objective
function starting at initial, accurate to
within functionTolerance (normally implemented as
a multiplier of the range value to give range tolerance), but
running only for at most maxIterations iterations.

minimize

Attempts to find an unconstrained minimum of the objective
function starting at initial, accurate to
within functionTolerance (normally implemented as
a multiplier of the range value to give range tolerance).

minimize

Attempts to find an unconstrained minimum of the objective
function starting at initial, accurate to
within functionTolerance (normally implemented as
a multiplier of the range value to give range tolerance), but
running only for at most maxIterations iterations.