gdss-brick >> gh17 Redesign disk storage:

- Introduce new hunk log format (brick_hlog_hunk module):

  * Unlike the generic gmt_hlog format, the new format is specialized
    for Hibari usage. It has four hunk types.

    ** metadata (for WAL files, many metadata blobs in one hunk)
    ** blob_wal (for WAL files, one value blob in one hunk)
    ** blob_single (for brick private files, one value blob in one hunk)
    ** blob_multi (for brick private files, many value blobs in one hunk)

  * To make WAL (Write Ahead Log) write-back process simpler, these
    WAL hunks have a dedicated 'brick_name' field.

  * Add API to read a value blob from a blob_* hunk without parsing
    the hunk header.

- Introduce new WAL and store file modules that will replace the old
  gmt_hlog_* modules. (in progress)

  * brick_hlog_wal -
    provides access to the WAL files including group committing.
  * brick_hlog_writeback -
    does write back from a WAL file to the metadata and blob stores.
  * brick_hlog_scavenger -
    (was introduced in an earlier commit) reclaims unused space from
    hunk log based store files.

  * brick_metadata_store - is the common interface of metadata store.
  * brick_blob_store - is the common interface of value blob store.

  * brick_metadata_store_leveldb -
    is a LevelDB implementation of the metadata store.
  * brick_blob_store_hlog -
    is an hunk log implementation of the value blob store.

DETAILS:

- gdss_brick_app.src:
  * Change the application description. (no longer has Gemini name.
    Add a source code comment about what GDSS stands for.)
  * Add the new hunk log relating modules to the modules section.
- brick_data_sup:
  * Now starts a brick_hlog_wal gen_server.
- brick_hlog.hrl:
  * Add this new include file with definitions of hunk_type and hunk
    record etc.
- brick_hlog_hunk:
  * Add this new module providing serializing and deserializing hunk
    logs for disk-based storage. It currently has only
    create_hunk_iolist/1 function implemented. (There are parse_* and
    read_* functions but they need to be updated.)
- brick_hlog_wal:
  * Add this new gen_server module providing access to the WAL files.
    It currently has write_hunk/1, write_hunk_group_commit/1,
    register_group_commit/0 functions implemented.
- brick_hlog_writeback:
  * Add this new gen_server module. Right now it is just a placeholder.
- brick_metadata_store:
  * Add this new module providing the common API of metadata store.
    Right now it is just a placeholder.
- brick_blob_store:
  * Add this new module providing the common API of value blob store:
    start_link/3, write_value/3 and read_value/2.
- brick_metadata_store_leveldb:
  * Add this new gen_server module. Right now it is just a placeholder.
- brick_blob_store_hlog:
  * Add this new gen_server module currently having write_value/3
    implemented.
- brick_hlog_scavenger:
  * Remove unused handle_info/2 clause.
- brick_metrics:
  * tweaking.