Low: scheduler: determine cluster status more efficiently
Previously, cluster_status() grabbed a bunch of CIB XML subsections,
then checked whether the CIB was NULL. Now, do the NULL check first,
and only grab the sections when needed, which reduces the number of variables
needed and avoids searching for the status section when not needed.
Also, the function sets data_set->failed to newly created XML. Now, it first
checks whether there was already something there, and frees it if so (which
should not be an issue with existing internal callers).