Refactor analyzer creation to use a factory pattern.

This allows us to more easily add new analyzers/filters/tokenizers without
having to modify a huge factory method every time. Now, we specialize a
single factory method for our new class and add it to the default factory
list. Clients can subclass and add their subclasses to the factory
manually, avoiding the need for them to potentially modify internal MeTA
code.