Design for compression driver

* use a structure to register supported drivers
* implement drivers:
  * no-compression driver (default_reader)
  * deflate-compression driver (zlib_readers)