Merge pull request #681 from cloudedge/pull-req-master-e3a6afc5b3018b71f086d37c25807e60a9327726

Adding Tests for DeploymentRole and Annealer [1/1]
Modify role-selection logic to strictly seperate bootstrap roles
(which are bound by default to admin nodes) vs. discovery roles (which
are bound by default to non-admin roles).
Optimize depends_on?, and make it detect cycles in the role dependency
graph as well.
Add a Roles.expand function.
Add an all_transition_data that is more comprehensive about what it grabs.
Add a runlog attribute to the node role.

This captures the last run information for this noderole.
Add a converge! method that reruns the annealer until there is nothing
to do.
Add rerun method to node_role.rb/
Add a make_admin! function to ease bootstrapping.
Optimize traversal of the noderole graph.

As we construct the noderole graph, we will save information on the noderoles
to make sorting and operating on arbitrary subsets of the noderole graph
easier and require fewer graph traversals.
Merge pull request #682 from VictorLowther/pull-req-master-c3b0cb7e352feeff6881ccd3369d63b7170a505b

https://github.com/crowbar/barclamp-crowbar/pull/682

Merged by devtool for VictorLowther
Make rerun actually work.
Add a helper for converging the annealer.
Hopefully add back the ability to log in with digest auth.
Add results for NodeRole#anneal and NodeRole#converge

Sort node_roles by cohort and ID while we are at it.
Wait a bit before creating the machine install user.
Fix up node_roles#converge

Should have been testing node_role state, not node_role status.
Add a crowbar converge command.
snapshot graph updated to use actual node-role relationships
use ID instead of string