Unified two gradient descent routines

Treatment of learning rate now set through "LearnRate" type
haddock updates; derived Eq instances for data types