[GSoC] API for various compression codecs

First draft of API.
@trustin and @normanmaurer please review it.
This should raise an UnsupportedOperationException because an encoder can not auto-detect. :-)