sheep/zookeeper: ensure zookeeper is connected

zookeeper session establishment is asynchronous. It means that
we cannot judge the session is connected by checking the
return value of the func zookeeper_init. Instead, we should
check the zookeeper handler's state in a loop to ensure
the session is connected.

Signed-off-by: Ruoyu <liangry@ucweb.com>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
zk_control: add list and purge queue nodes

Zookeeper occupies more and more memory in our production environment
because the nodes in /sheepdog/queue are never deleted even after
the messages were already handled.

So, we need a tool to list and purge them periodically.

Signed-off-by: Ruoyu <liangry@ucweb.com>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
zookeeper: fix zk_event structure not initialized

If it is not initialized, some values of the members in the struct
will be incorrect in the output of zk_control lqueue command.

Signed-off-by: Ruoyu <liangry@ucweb.com>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>