Refactor and simplify code in Evaluation hierarchy.
Add abstract Evaluation class MatrixFactorization and a set of implementing techniques.
Changes to Evaluator.

- Fix EvaluateClustered so that proper averages are calculated for each evaluation
instead of for each cluster.
- A few other changes to logging output.
Combine debugging output into evaluate method.
Move out all parameters in clustering code and add logging output.
Result: Remove unused imports and fix toString format.
Add graphs to gitignore.