Classy

* Add classy AI algorithm
* Improve the AI benchmark script
* Provide a Django cache to AI algorithms and use it to cache deserialized classifier data.
* Add AI grading requirements, including EASE
* Use wheels to install AI grading requirements
* Silence warnings
* Use in-memory cache without pickling
* Add version info to serialized classifiers (both EASE and classy)
* Default AI settings and better error messages

Most of the changes in this PR are for running tests that rely on scikit/nltk/scipy/numpy in Travis within a reasonable amount of time.

I'm relying on a newer version of scikit learn than EASE does, both because it's cleaner (`FeatureUnion` was added in version 0.13) and slightly faster.

Still to do:
* Additional validation rules for when training examples don't contain at least one positive/negative example.
* Validate Classy using additional test essays.

@stephensanchez I believe this is ready for an initial round of review, but I'm not planning on merging this until I validate the algorithm with more test data.
Sure, but I'd prefer to do that in a separate PR.  The circular dependency only seems to come up if you run `test_ai.py` by itself, which I was doing a lot :)