Support n nodes when using static strategy

So far, the plugin was able to support a maximum of two nodes when
syncing index, caches and events. This is a limitation when having more
than one standby server is wanted/needed.

Implement support for n nodes when using static strategy. The URL of the
peers in the cluster is specified as a list in the configuration. So for
example, in the high-availability configuration file of a node with the
URL http://localhost:2141, two other peers are listed as:

  ...
  [peerInfo]
        strategy = static
  [peerInfo "static"]
        url = http://localhost:2142
        url = http://localhost:2143
  ...

Each of the listed nodes, in turn, will list in its configuration file
the URLs of the two other peers. In this way, all the nodes are kept in
sync no matter which is one generating "syncable" items.

Before this change, there was only one peer and the retry logic was
simple: as soon as a message was sent successfully to the other node,
the operation was considered as done. Now, the retry has to be handled
separately for each of the configured peers and the operation is only
considered successful if all the peers received the message. When some
nodes fail to receive the message, the sending is retried according to
the applicable configuration settings and if it fails after the retry,
an error is logged as before but containing also the URL of the node.

The support of n nodes in the case of dynamic strategy (using JGroups)
requires a completely different approach, thus should be tackled in a
different change.

Change-Id: I49e91c73598cee61f64e479a74504898b61c4e36
12 files changed