Clean up the async-ness of classification.js.

Using Q-style promises for async-handling, which is more consistent with the rest of the code base, and means we can significantly cut down on the amount of code used here.