[GSoC] API for various compression codecs

First draft of API.
@trustin and @normanmaurer please review it.
We could instead add a new method to ZlibWrapper. For example:

```java
public enum ZlibWrapper {
    ZLIB {
        public CompressionFormat asCompressionFormat() {
           return CompressionFormat.ZLIB;
        }
    }, ...
    public abstract asCompressionFormat();
}
```