Add xz support

Create a utility class for transparently handling multiple compression schemes. This is used by job.py for reading data, and by process-incoming to write it.

With this in place, we can easily swap out the desired compression scheme without affecting existing mapreduce jobs.
I added support for specifying the compression level below.