Allow users to set MAC address in DHCP database when node is created AND deal w/ issues created when we changed the attribute system [1/5]

This pull request started as a very simple, add another HINT into nodes for DHCP database.
This was added to the provisioner database and includes TESTs.

Creating those tests exposed a lot of work needed to make sure that BDD was testing
the full annealer including that background workers were running and the annealer
queue was flushed before we checked for changed states.

During that time, @VictorLowther changed the way that we deal with attributes.  I 
updated the code in the node.hint to also use the attribute system as designed. 
This was a good improvement and more general.

The attribute system changes exposed inconsistencies in how we were dealing with 
role.template and other places were we store data.  I had to fix all those so 
that the tests were passing.

TESTS ROCK.


 BDD/attrib.erl                                     |    4 +-
 BDD/bdd.erl                                        |    6 +-
 BDD/bdd_clirat.erl                                 |   26 ++++++---
 BDD/bdd_restrat.erl                                |   15 ++++-
 BDD/crowbar.erl                                    |   27 +++++++--
 BDD/dev.erl                                        |    7 ++-
 BDD/features/node.feature                          |   32 +++++++++--
 BDD/json.erl                                       |   16 ++++--
 BDD/node.erl                                       |    9 ++-
 BDD/node_role.erl                                  |   11 +++-
 BDD/role.erl                                       |    3 +-
 .../app/controllers/application_controller.rb      |   10 ++++
 .../app/controllers/attribs_controller.rb          |   16 +++---
 .../app/controllers/node_roles_controller.rb       |   14 ++++-
 .../app/controllers/nodes_controller.rb            |    7 ++-
 .../app/controllers/roles_controller.rb            |    5 +-
 .../app/controllers/scaffolds/roles_controller.rb  |    1 +
 crowbar_framework/app/models/attrib.rb             |   59 ++++++++++++++++----
 crowbar_framework/app/models/node.rb               |   20 ++++++-
 crowbar_framework/app/models/node_role.rb          |    3 +-
 crowbar_framework/app/models/role.rb               |   17 +++++-
 crowbar_framework/app/models/run.rb                |    2 +-
 crowbar_framework/app/views/errors/500.html.haml   |    2 +-
 crowbar_framework/app/views/nodes/show.html.haml   |    2 +-
 crowbar_framework/app/views/roles/show.html.haml   |    2 +-
 doc/devguide/model/node.md                         |    8 ++-
 26 files changed, 252 insertions(+), 72 deletions(-)

Crowbar-Pull-ID: 66d40a815aa402d4c2c9bee71df46a05ed8e8f57

Crowbar-Release: development