New nlp pipeline

This pull request provides the new NLP pipeline implementation we discussed on the phone on tuesday.

It pulls the process() functionality which satisfies prerequisites and whatnot away from each annotator and puts it in the annotator maps. It has helpers for running a pipeline sequentially and in parallel on many documents, and it automatically validates all pipelines which are run, to make sure they don't fail to supply a prerequisite and don't provide the same thing twice. It also does not reannotate documents with things they've already been annotated.