Extract Tika util

I've refactored the Tika stages and moved their central parsing util out into a Tika util. I've also split the util into some separate classes and removed all the staticness.

There should now be less duplicated code in the Tika stages.

My initial plan was to move the entire dependency on Tika out into the util, including the `tika-parsers` dependency. Unfortunately it proved very difficult, due to the way tika-parsers introduces all these conflicting classes. In the end I let the util have `tika-core` as a dependency, then the stages can provide any necessary parsers.

I'm not sure how we want to use the util projects. I avoided Hydra dependencies now, but in general it could make sense to have them depend on Hydra. That way some of the code in the new classes in tika-stages could be moved to the util.