Add HAProxy support

We have a new cookbook for this (not based on the upstream one, which
would require too many changes).

A few notes:

 - we always install haproxy on cluster nodes.
   If we were not doing this, then some nodes would not have it
   installed when the resource is first declared and these nodes will
   have this error:
warning: services_os_action_execute: Cannot execute '/etc/init.d/haproxy': No such file or directory (2)
   The error is fixable with "crm resource refresh", but we might as
   well just install the package.

 - we allow a retry when creating primitive for haproxy.
   This helps work around "crashes" due to races where two nodes create
   the primitive at the same time when it wasn't created yet (only one
   can obviously succeed).

 - we provide helpers to make it easier to setup haproxy automatically.