Sepcify target cluster id for "add_replicas" (in "join") and "unjoin" remote commands
Ignore remote commands for other Droonga clusters
Calculate cluster ID based on dataset names
Install dependencies under "vendor/" for temporary repository
Don't save last processed message's timestamp if there is no processed message
Output source cluster id at first
Specify temporary path for catalog.json loaded from JSON string
Use fixed path
Add method to set "suspended" state.

Note: the state is actually not implemented yet.
Introduce LiveNodesList class to manage rich list
Add method to collect suspended nodes based on serf tag
Return detailed status of nodes by system/status.

old        => new
live=true  => status=active
live=false => status=inactive
---        => status=suspended (newly introduced!)
Don't deliver messages to suspended nodes
Fix mismatched method name
Store information about nodes in foreign cluster
Detect list of live nodes based on the catalog and list of dead nodes.

To send messages to temporary unjoined nodes (as a source for newly joined node), we must ignore
difference of cluster_id
Calculate list of dead nodes by LiveNodesList
Don't wait responses from suspended nodes
Merge ../droonga-engine into replicas-in-a-branch

Conflicts:
	lib/droonga/catalog/base.rb