Alternative interface for Compressions
This interface has type checking.
One of the laybacks of the string based Compression is that we've got no
compiler checking.
Another benefit of this interface is that it would allow for easy custom
implementations of compressions.
This creates a new struct Compression that has a ContentEncoding string,
Reader and Writer creator closures that receive a buffer to read and a
buffer to write to.

Interface Comparison:
- Current:
    goreq.Request{Uri: "http://www.google.com", Compression: "gzip"}.Do()
- Alternative:
    goreq.Request{Uri: "http://www.google.com", Compression: goreq.Gzip()}.Do()

Conflicts:
	goreq.go