sheep/cluster: use sema_t to replace pthread_cont_t

In previous commit (52af6ff1aabe2f4f32e55e4a88537df41d4db7e9), we use
pthread_cond_t instead of pthread_mutex_t to avoid panic, but the pthread_cont_t
has its own problem: it may miss the wakeup-signal so we have to call
sd_cond_wait_timeout() which will wakeup every n-seconds and waste some cpu.

Therefore, use sema_t is more neat since it is more suitable for P/V operations.

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