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.
Can CompressedFile hide these other StorageLayout details? Maybe automatically append the right suffix, depending on chosen compression output format.