sheep: allow {register,unregister}_event to be called in worker thread

For now we can only call them in the main thread, which is designed for long
running or infrequent events. This would be inefficient if we want to deal with 
short running and frequent events that register/unregister the events in the
worker thread 

1. avoid to be trapped to main thread for performance
2. make sure registeration is done before some other events.

This doesn't mean we can manipulate the same event with multiple threads
simultaneously, instead we still adhere to the assumpioin that

- one event will only be manipluated by a single entity.

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep: introduce async request handling

This patch introduces async request framework that has the following usage
patern:

iocb = local_req_init();

loop:
    ...
    exec_local_req_async(req, iocb);
    ...

ret = local_req_wait(iocb);

wait until all the reqs finish, if any req fails, just return it from
local_req_wait(); 

Request throttling should be handled by the async user.

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep/http: optimize read/write object by using async request

Also add Robin and myself to the contributor list of this file

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