Start rework of attribs to improve data isolation during annealing [1/3]

 Start rework of attribs to let them be role driven.

Among the changes:

* Declare default attribs in crowbar.yml, either in a top-level attribs
  section or as part of a role.
* Enhance the attrib type finding model to allow for jig-specific
  customizations.
* Allow roles to declare that they want specific attributes.  Nothing
  uses this now, but it will wind up replacing the current attribute
  gathering logic that the jigs use.

The aim of this is to lay the groundwork for replacing our
current overly simple strategy for figuring out which attributes to
inject.  It does not start the work of replacing that code yet -- that
will come in a future pull request.


 crowbar.yml                                        |  41 +++++++++
 crowbar_framework/app/models/attrib.rb             | 100 +++++++++------------
 crowbar_framework/app/models/barclamp.rb           |  25 ++++++
 .../barclamp_crowbar/attrib/number_of_drives.rb    |  29 ++++++
 .../app/models/barclamp_crowbar/attrib_default.rb  |  20 -----
 .../models/barclamp_crowbar/attrib_drive_count.rb  |  29 ------
 crowbar_framework/app/models/jig.rb                |   1 +
 crowbar_framework/app/models/node.rb               |   2 +-
 crowbar_framework/app/models/role.rb               |   9 +-
 crowbar_framework/app/models/role_require.rb       |  62 ++++++-------
 .../app/models/role_require_attrib.rb              |  21 +++++
 crowbar_framework/app/views/nodes/show.html.haml   |   2 +-
 .../migrate/20120731225511_create_role_requires.rb |  58 ++++++------
 .../db/migrate/20120731225600_create_attribs.rb    |   8 +-
 .../db/migrate/20131018000000_add_node_attribs.rb  |  63 -------------
 15 files changed, 236 insertions(+), 234 deletions(-)

Crowbar-Pull-ID: a5df278b8c055255c255e395c0bbfbf2cf28a449

Crowbar-Release: development