An object for keeping track of Annotators. Typical use is to allow multiple
pipelines to share any Annotators in common.
For example, if multiple pipelines exist, and they both need a
ParserAnnotator, it would be bad to load two such Annotators into memory.
Instead, an AnnotatorPool will only create one Annotator and allow both
pipelines to share it.
Register an Annotator that can be created by the pool.
Note that factories are used here so that many possible annotators can
be defined within the AnnotatorPool, but an Annotator is only created
when one is actually needed.
name - The name to be associated with the Annotator.
factory - A factory that creates an instance of the desired Annotator.
true if a new annotator was created; false if we reuse an existing one