Add support for non-idempotent roles. [1/3]

This pull request series adds support for:
* Declaring that a role is non-idempotent, which will tell the
  annealer that noderoles for that role should not be rerun after it
  has sucessfully transitioned to active.
* Rebooting a node, putting a node into debug mode, and pulling it out
of debug mode via the API and CLI interfaces.


 bin/crowbar_nodes                                  | 78 +++++-------------
 .../app/controllers/nodes_controller.rb            | 24 +++++-
 crowbar_framework/app/models/barclamp.rb           |  1 +
 .../app/models/barclamp_crowbar/jig.rb             |  9 +-
 crowbar_framework/app/models/jig.rb                |  8 +-
 crowbar_framework/app/models/node.rb               | 95 +++++++++++++++-------
 crowbar_framework/app/models/node_role.rb          | 42 ++++++++--
 crowbar_framework/app/models/role.rb               |  1 +
 crowbar_framework/app/models/run.rb                |  9 +-
 crowbar_framework/config/routes.rb                 |  3 +
 .../db/migrate/20120731225510_create_roles.rb      |  3 +
 .../db/migrate/20120731225516_create_nodes.rb      |  3 +-
 .../db/migrate/20120731310000_create_node_roles.rb | 80 +++++++++---------
 doc/devguide/model/role.md                         | 82 ++++++++++++-------
 14 files changed, 261 insertions(+), 177 deletions(-)

Crowbar-Pull-ID: 711cb679ae93eb9648f168e599dceeeb06524c9a

Crowbar-Release: development