iobuf: Added a function iobref_clear

Original-author: Venky Shankar <vshankar@redhat.com>

Change-Id: Ibf861db6c1b084b798d210962344487a1919aad2
BUG: 921942
Signed-off-by: Prashanth Pai <nullpai@gmail.com>
features/compress: Compression/DeCompression translator

Original-author : Venky Shankar <vshankar@redhat.com>

* When a writev call occurs, the client compresses the data before
  sending it to server. On the server, compressed data is decompressed.
  Similarly, when a readv call occurs, the server compresses the data
  before sending it to client. On the client, the compressed data is
  decompressed. Thus the amount of data sent over the wire is minimized.

* Compression/Decompression is done using Zlib library.

* During normal operation, this is the format of data sent over wire :
  <compressed-data> + trailer(8)
  The trailer contains the CRC32 checksum and length of original
  uncompressed data. This is used for validation.

* However in debug mode, gzip header is added and compressed data is
  dumped onto disk as a gzip file. This is to be used is testing only.

HOW TO USE
----------
Setting compression xlator options from CLI

Ex : gluster volume set <vol_name> compress on
     gluster volume set <vol_name> compress.buffer-size 32768
     gluster volume set <vol_name> compress.debug on

Change-Id: Ib7a66b6f1f70fe002b7c513588cdf75c69370805
Signed-off-by: Venky Shankar <vshankar@redhat.com>
Signed-off-by: Prashanth Pai <nullpai@gmail.com>