Compression codec change

This is based on and subsumes @lyogavin's pull request #685.

* Cleaned up the code; moved the compression codec's into a new package spark.io
* Added unit tests
* Switched the default compression codec to Snappy, since it has lower memory overhead
* Added configuration options to the documentation file
* Properly resolved dependency conflicts in SBT for Snappy
* Added the Snappy dependency in Maven