ha-cluster: Add OCF resource agent for LizardFS

This resource agent will manage a LizardFS master and shadow master
instances to provide high-availability failover.  It does so by
implementing an OCF resource agent which is designed to be used as a
master/slave resource.

An OCF master/slave resource initially starts in the slave state, which
in our case means a shadow master, and is later promoted to a master
role.

When initially started as a shadow master, we don't know the address of
the actual master; in fact, we may become the actual master, or the
master may be communicated to us in a later "notify" event.  So we start
the shadow master with an invalid master, and change and reload the
configuration once we find out who the actual master is.

When the resource agent is polled for its status, it updates its "master
score" to indicate which node should be preferred as the next master.
The current master gets the highest score, connected shadow masters get
the next highest, and disconnected shadow masters get extremely low but
non-zero scores.

The resource agent takes a few configuration parameters; none are
required, as they all have reasonable default values.  Most of them are
merged into the normal lizardfs config files, which are copied and
edited in order to change the shadow/master configuration options as the
states change.  The particular collection of parameters that are
currently exposed via the resource agent are determined more by what was
convenient for my testing than any principled criteria; they could be
removed and simply configured via the static configuration file, or
increased such that all static configuration options are exposed via the
resource agent configuration.

There is a test script, which is not yet integrated with the main
lizardfs test system.  It runs a few basic sanity checks, then runs
ocf-tester to try running through all of the commands and ensuring that
it meets the OCF specifications.  ocf-tester doesn't set up multiple
instances, so it can't fully test master/slave resources, so we also
include a test by hand to spin up two instances, promote one, and notify
the other.  Note that these tests never actually exercise any changes to
the metadata, so they're still not in any way complete, but they provide
a basic smoketest to ensure that everything at least claims to work.
Also note that the test script does several things that conflict with an
actual instance, like updating the global master score, so shouldn't be
run on a system with lizardfs or an actual cluster running.

For documentation on how to set up a basic master/slave failover with a
floating IP address that follows the current master, see
src/resourceagent/README.

For information on what an OCF resource agent is and how they should be
written, see:

* http://www.linux-ha.org/doc/dev-guides/ra-dev-guide.html
  The OCF Resource Agent Developer's Guide
* http://www.linux-ha.org/wiki/OCF_Resource_Agents
  The Linux HA Wiki page on OCF Resource Agents
* https://github.com/ClusterLabs/resource-agents/tree/master/heartbeat
  A collection of existing resource agents for various software; in
  particular, the mysql and pgsql resource agents were used for
  reference.
* http://git.drbd.org/gitweb.cgi?p=drbd-utils.git;a=blob;f=scripts/drbd.ocf;hb=HEAD
  Another good master/slave resource agent which was used for
  reference, distributed in a separate package than the common
  resource-agents package.

Change-Id: Ia684d5ae6b2402bec566a5bcecbe80e37973d2e4