Refactor workers completely.

Since we no longer have multiple types of workers, it was possible to
collapse the entire set of worker classes into a single Worker class.
While I was in there, I tried to simplify the structure of the worker by
breaking out individual tasks into methods.

I have no idea if this actually works in complex cases in the real
world, but it worked for me to install some gemfiles with threads.