sheep/http: refactor kv_create_object()

This not only makes the code easier to understand, but also fixes some fatal
bugs:

- didn't free data objects if we fail to create onode
- didn't handle hash collision for onode creation
- many error handling fixes and enhancement

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