sheep: split cluster_info into system_info and cluster_info

The current cluster_info contains two different things:

 - The global variables which are specific to the local sheep.
 - The cluster-wide variables which must be kept in the same state
   among existing sheep nodes (e.g. epoch).

This patch moves most of fields cluster_info into system_info.  After
this patch, cluster_info only contains the cluster-wide variables.

The join process will change a bit.  The joining sheep has to send its
cluster_info in the join_message and receives the latest cluster_info
from the master node.  If the joining node sends an invalid
cluster_info, the node will fail to join.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep: access config entries with one function call

Currently, we have to use multiple (set|get)_cluster_* functions to
read/write a cluster setting from the config file.  This introduces
set_cluster_config and get_cluster_config to simplify the codes.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
sheep: start cluster if all the nodes in the previous epoch are gathered

The current rules to start sheepdog automatically are too complex:

 - One of the node in the latest epoch becomes a master.  If the
   joining node has the larger epoch, the node becomes a new master
   and the current master must exit and rejoin later.

 - If the joining node has a smaller epoch than the existing nodes,
   the node will be linked to the delayed node list and rejoin
   automatically after sheepdog starts.

 - Sheepdog starts if the current node list becomes the same one as in
   the previous epoch.

After this patch, we have only one rule:

 - Sheepdog starts if all the nodes in the previous epoch are
   gathered.

The nodes with smaller or larger epoch also can join, and all the
joined nodes share the same (latest) cluster_info among them.  All the
nodes have the latest epoch, so any node can be a master.  If all the
nodes in the previous epoch join Sheepdog, the cluster will start
automatically.

This change also brings the following benefit:

 - We can remove the failed node list, the delayed node list, and the
   CJ_RES_JOIN_LATER status since the node with smaller epoch can join
   Sheepdog.

 - The CJ_RES_MASTER_TRANSFER status can be removed because any node
   can be a master and no need to transfer mastership even if the node
   with larger epoch joins Sheepdog.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>