Abstract the solver out from the trainer.
Add logistic regression solver.
Add simple test case.
Merge branch 'feature/glm' into develop