[GSoC] API for various compression codecs

First draft of API.
@trustin and @normanmaurer please review it.
I guess it's also a good idea to add various newEncoder/newDecoder methods here and expose various parameters for zlib. :-)