Do not try to run the proxy bits too early

If the rings are not present, then swift-proxy will just fail to start.

There are two cases:

 - if we're a storage node and we have no devices yet, then we know
   we're on the first pass of the crowbar orchestration for storage
   nodes, so we can just ignore the proxy bits

 - if we do not have the rings yet in the execute phase when trying to
   setup the services, then it means the ring-compute node didn't push
   them yet or we didn't manage to pull them yet. Since we know that
   swift-proxy will fail without the rings, there's no point in doing
   anything. For setting up swift-proxy, we instead rely on the chef run
   after the one for ring-compute that crowbar will orchestrate.

The last case can happen for various reasons, but the most likely one is
having the periodic chef-client run occur on the swift-proxy node before
the crowbar chef-client run occurs on the swift-ring-compute node. We
know that crowbar will run chef-client on the swift-proxy node after the
rings have been computed, so we will have the rings and a chance to
start swift-proxy later on.

https://bugzilla.novell.com/show_bug.cgi?id=872518
Do not try to run the dispersion bits too early

If the dispersion node is also a storage node or the ring-compute node,
then the dispersion recipe will be run too early, before swift is
totally setup. We detect these cases to not proceed with the dispersion
recipe.
ha: Do sync marks for pacemaker resources only when needed

It makes no sense to do the sync marks when we won't create the
resources.