cluster/local: support lock/unlock

Reviewed-by: Robin Dong <sanbai@taobao.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
tests/func: add nginx.conf

This is needed for later test cases to test http services. It is convenient to
include it in the tests and make tests self-contained.

Reviewed-by: Robin Dong <sanbai@taobao.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
tests/func: add 081 to test http service

Current master can pass it with local driver, but zk 3.4.5 can pass it too

Reviewed-by: Robin Dong <sanbai@taobao.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
tests/func: add 082 to test http services with multiple servers

Current local deiver can pass it and zk 3.4.5 can pass it too.

Reviewed-by: Robin Dong <sanbai@taobao.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep/http: remove unused code

Since we use delete-before-put model to implement overwrite semantics, this code
patch will never bed triggered. So remove it.

Reviewed-by: Robin Dong <sanbai@taobao.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
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

Reviewed-by: Robin Dong <sanbai@taobao.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>