http: refactor do_kv_create_object

- add comment to it

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
http: add basic extent framework to support large user object

To support object larger than 4M, we have to introduce extent like structure
to map the data indexes to data holders(sheepdog object). So basically, we use
one object index node(onode) to hold the metadata and extents.

user object -> onode[metadata, extent1, ............., extentN]
                                 |                        |
                                 V                        |
                +-----------------------------------+     |
                | obj1 | obj2 | .............| objN |     |
                +-----------------------------------+     |
                                                          V
                                 +-----------------------------------+
                                 | obj1` | obj2` |...........| objN` |
                                 +-----------------------------------+

For user object size smaller than 4M, we just inline it to the onode

user object -> onode[metadata, user-data].

kv_create_extented_object() is left for later patch set.

For object name to onode mapping, we make use of old hash approach, that is

- hash(objec_name) --> vdi[hash_value] -> onode

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
http: add object allocator

Signed-off-by: Liu Yuan <namei.unix@gmail.com>