Utility to find optimum recommendation thresholds based on F-scores

Summary:
This utility aims to simulate a history of problem logs across certain users to determine the threshold which would have given the optimum mix of precision/recall.

This is a work-in-progress at the moment.  Right now, it is optimizing on the "baseline" prediction, which only uses ExerciseState as emitted by accuracy_model_featureset.py. This is a big mistake. Instead, it needs to compute and output the final predicted value, which will be much more involved because I will have to keep track of per-user, per-exercise ExerciseState and the per-user KnowledgeState. I have this code marked as a `STOPSHIP` in the code. This will be fairly involved, but I should be able to copy a lot of code from compare_accuracy_models.py and the `UserKnowledgePerformance` mapreduce in the webapp repo.

I put initial results into this document: https://docs.google.com/a/khanacademy.org/document/d/1MCi-wT53lF2MrCClDUfSQ4OPnJBDAvwo5lM_aOQ8vB8/edit#

But for now, I will iterate on results within this differential, since the "log-style" or describing analyses that have been done is more conducive to iterative communication and development.

Test Plan:
Running manually with:
`cat src/features3.sorted.trunc.csv | python optimize_exercise_thresholds.py 0.5 1.0 2.0`

Reviewers: jascha, jace

Reviewed By: jascha, jace

Subscribers: tony, tom, eliana

Differential Revision: http://phabricator.khanacademy.org/D7457