Start of refactor: implementing solution as a custom scikit estimator.
Refactoring #2

Predictors as a numpy-compatible estimator, k_fold cross validation,
use numpy arrays, use numpy loadtxt/savetxt, ...
Refactor #3

* move files (new py file only for major solver differences)
* square weights for phrase average
Delete old file.
Merge branch 'refactor'

* Implement custom solver as a sklearn-compatible estimator
* Use numpy arrays
* Use numpy loadtxt / savetxt functions
* Docstrings
* New py file only for completely new solvers, not improvements.
* k_fold cross validation