Make no-quorum-policy configurable in the webui

People might want to pick something else than stop when they have enough
nodes.
webui: Implement per-node table for STONITH
webui: Disable no-quorum-policy option when there are not enough nodes

If the cluster has less than two nodes, then the no-quorum-policy must
be forced to "ignore" and we also disable the select widget for it.

Since we know that there will always be a node with the founder role,
the condition is really on the number of non-founder nodes.
Remove input-sm from class of the td containing the parameter

This made the text smaller than it should be.
Adapt attributes created by crowbar for per-node STONITH

For per-node STONITH, we have a hash where the keys are the FQDNs of
each cluster member. It turns out that when configuring the resources in
pacemaker, what we are using is actually the hostnames of each cluster
member (ie, FQDN without the domain name).

So we translate what crowbar gives us to what pacemaker expects.
Sort the nodes in the stonith table
Display node aliases instead of names
Move STONITH check to second pass
Wait for corosync to be ready before doing anything

On the initial run, it takes 20-30 seconds before corosync is ready to
accept changes with "crm configure". So wait for that before we continue
(and apply crm-initial.conf, for instance).
For per_node STONITH, have each node configure its own resources only

We have some races when creating STONITH resources because nodes are
creating resources at the same time. It turns out that, in the case of
crowbar, we can have each node configure its own resources only because
we know all nodes will run the code.
Ensure that cluster_nodes always return correct data for this node

Because chef-server has outdated information, it will not return the
node doing the query with the latest attributes, so we replace it.
(Sometimes, it doesn't even list the node as part of the results, while
it should)
For per_node STONITH, be a bit clever for auto-generation of host* param

Some STONITH plugin take hostname as param, while some take hostlist.
And we can't really guess that. So for now, we check if there's a
hostname or hostlist key in the params, and if one of them is there, we
don't do anything. If none is them, we try with hostname.
Do not use a clone resource for shared STONITH plugin

This is not required anymore according to our HA experts.

We therefore rename everything to "shared" instead of "clone".
Refer to "Fencing agent", not "STONITH plugin"

This is the recommendation from HA people.