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 was going to make the compression level a parameter, but wasn't sure how to instruct the in-process lzma code to use a specific level. 

I did the time/space testing way back at the beginning, and found that -0 was the best bang for the buck. I didn't keep the results around, unfortunately, so I'm going to rerun those tests and add documentation.