Update role binding logic to facilitate running a real workload on Crowbar 2.0 [1/8]

 Fix up role logic to help support Ceph
* Add utility roles that other roles can easily depend on to tell when a
  node is in certian states.  Currently, these are:
    * crowbar-managed-node, which indicates that a node has completed the
      initial discovery process,
    * crowbar-admin-node, which indicates that the admin node is alive and
      ready to manage other nodes, and
    * crowbar-installed-node, which indicates that the node has an
      operating system installed and is ready to have a workload deployed on
      it.
* Add on_deployemnt_create and on_deployment_delete hooks to the role
  model.  These are called whenever a deployment role is created or
  destroyed to allow roles to preseed deployment-specific values.  They
  are currently used by the Ceph barclamp to randomly generate unique
  fsid and monitor secrets..
* Add a cluster flag and accompaining logic to roles.  When a role has
  the cluster flag set, add_to_node_in_snapshot will ensure that all of
  the noderoles created as children of any noderoles created for
  noderoles with the cluster flag are fully connected -- all the
  children will depend on all the parents.  This is used to ensure that
  no child noderole will start deploying until all of its parents have
  completed their deploys.
* Modified add_to_node_in_snapshot to recursively create all parent
  noderoles, instead of only doing so with implicit noderoles.
* Modify how we queue roles up for delayed_jobs to be a little more
  stable.


 crowbar.yml                                        |  28 ++++-
 crowbar_framework/app/models/barclamp.rb           |   3 +-
 crowbar_framework/app/models/deployment_role.rb    |  12 ++
 crowbar_framework/app/models/node.rb               |   8 +-
 crowbar_framework/app/models/node_role.rb          |  17 ++-
 crowbar_framework/app/models/role.rb               | 140 +++++++++++----------
 crowbar_framework/app/models/run.rb                |   8 +-
 .../db/migrate/20120731225510_create_roles.rb      |   7 +-
 8 files changed, 151 insertions(+), 72 deletions(-)

Crowbar-Pull-ID: f28b0c0c0dce9879a7994eaa07e17b3068198e63

Crowbar-Release: development