Added compression feature.

By setting `compression.enabled=true`, you can enable Gzip compression
for the target data.  Alternatively, you may override the codec by
  setting `compression.codec`.

@pgarbacki: This is a work in progress.  I'd appreciate your feedback.

I included some tweaks I made to get the end-to-end tests working, but I can drop those.  The gzip test also requires having the Hadoop native libraries installed (for gzip et al).

I did successfully run the end-to-end tests with both compressed and uncompressed data.
Consider iterating over systemProperties.entrySet() instead. This will eliminate the need for key lookups in each iteration.