Refactor GradientDescent into GradientDescentType<UpdatePolicyType, DecayPolicyType> and add the DeltaBarDelta and MomentumDeltaBarDelta optimizers (#440).
Fix an off-by-one bug where the actual number of executed iterations was one fewer than the specified maxIterations (#443).