Testing-training separation fix

For each user both solved and failed problems are divided between
training and testing set as 60%-40%
Significant speedup in the dividing algorithm