Moved some methods around to increase re-use.
Moved quadratic cost to its own header.
Separated more stuff in GradientDescent.
Added gradient descent with adjustable step.