logger: selectable log format
more precise timestamp by gettimeofday()
move node_to_str() and str_to_node() from sheep/cluster.h to include/sheep.h

shephered uses node_to_str() and str_to_node(), so they should be
moved to the header which can be included by other directories of
sheep/.

Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
move enum cluster_join_result from sheep/cluster.h to include/internal_proto.h

enum cluster_join_result is also used by shepherd. So this patch
moves it from sheep/ to include/.
lib: sockaddr_in_to_str(), convert sockaddr_in to string representation

This patch adds new function sockaddr_in_to_str() to lib/net.c. This
is for converting variables typed struct sockaddr_in to string
representation.
lib: add wrappers do_writev2() and writev2() for typical usage of writev()

This patch adds 2 new wrappers: do_write2v() and writev2() for
enshorting typical usage of writev().

Typical usage of writev() is sending an array of struct iovec with 2
elements, one for a header and another for a message body.
With do_writev2(), declaring the array in caller side can be removed.

writev2() is a wrapper for do_writev2(). Typical headers have fixed
length, so writev2() obtains their length with sizeof() (so writev2()
is defined as a macro function).
shepherd: a new cluster manager specialized for sheepdog

This patch adds shepherd, a new cluster manager for sheepdog. shepherd
is specialized for sheepdog, so it can be optimized only for sheepdog.

shepherd cluster manager is designed as master-slave. So it can be
SPOF. But I'm planning to let it be redundant by utilizing corosync.
If it can be improved, this can be an alternative of the group
management part of ZooKeeper, and it doesn't depend on JVM.

This patch adds the new directory shepherd/ for it, and the
executable binary will be produced as shepherd/shepherd.
The cluster driver for sheep is added as sheep/cluster/shepherd.c.

If you have some opinions or feature requests for a cluster manager
designed and implemented from scratch, I'd like to hear your comments.
sheep: add a cluster driver for shepherd
test 043 passed

the source of the problem was wrong implementation of leave().
shepherd: use selectable log format
use early_log_init()