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.
Yeah, this is a good idea.  We'd still need some indicator of the "preferred" output format, but CompressedFile seems a better place for that than StorageLayout anyways.