Resolved FeatureGeneration OOME

I decreased the number of training instances that Feature Generation was trying to hold in memory at once to avoid OOME. I also increased the frequency with which Distant Supervision outputs negative training examples so that annotations from the same sentence are near enough that they won't be queried multiple times from the database.
Added a check for a null pointer in Corpus.getAnnotationPairsForEachSentence