Dashboard Drag and Drop + BDD testing refactors [1/1]

This pull ended up being a BIG TUB of stuff.

The original objective was to get Dashboard Drag & Drop Working.  
That is included and it works.

That required getting node, group, node/group API working.
That required getting BDD tests setup for the API
That drove refactoring of BDD to make it easier to test REST

There is a lot of refactoring of BDD included in this pull.

There are also some BDD goodies including:
1) inspector to test if BDD leaves artifacts
2) step generator shows steps
3) dev.erl can be used to populate (and depop) a system to UI dev

I also picked up a minor item to hide menu items under the dev flag.
That led me to change the menus to give "dev mode" context using [brackets]


 crowbar_framework/BDD/bdd.erl                      |   80 ++++++--
 crowbar_framework/BDD/bdd_restrat.erl              |   58 ++++++
 crowbar_framework/BDD/bdd_utils.erl                |   59 +++---
 crowbar_framework/BDD/bdd_webrat.erl               |   39 +----
 crowbar_framework/BDD/crowbar.config               |    2 +-
 crowbar_framework/BDD/crowbar.erl                  |   65 +------
 crowbar_framework/BDD/crowbar_rest.erl             |  145 +++++++++++++
 crowbar_framework/BDD/dashboard.erl                |   37 +++-
 crowbar_framework/BDD/default.config               |    2 +-
 crowbar_framework/BDD/dev.erl                      |   56 +++++
 crowbar_framework/BDD/features/bulk_edit.feature   |    6 +-
 crowbar_framework/BDD/features/dashboard.feature   |    7 +
 crowbar_framework/BDD/features/groups.feature      |   35 +++-
 crowbar_framework/BDD/features/navigation.feature  |    2 +-
 crowbar_framework/BDD/features/nodes.feature       |   18 ++-
 crowbar_framework/BDD/features/users.feature       |   32 +++
 crowbar_framework/BDD/groups.erl                   |   76 +++++---
 crowbar_framework/BDD/json.erl                     |   11 +-
 crowbar_framework/BDD/linux_compile.sh             |    2 +-
 crowbar_framework/BDD/nodes.erl                    |   56 +++++-
 crowbar_framework/BDD/simple_auth.erl              |    2 +-
 crowbar_framework/BDD/users.erl                    |   83 ++++++++
 .../app/controllers/groups_controller.rb           |   13 +-
 .../app/controllers/nodes_controller.rb            |   24 +--
 crowbar_framework/app/models/group.rb              |    1 +
 crowbar_framework/app/views/nodes/_form.html.haml  |   37 ----
 crowbar_framework/app/views/nodes/edit.html.haml   |   38 ++++-
 crowbar_framework/app/views/nodes/index.html.haml  |   71 ++++---
 crowbar_framework/config/locales/crowbar/en.yml    |    6 +-
 crowbar_framework/config/navigation.rb             |   14 +-
 crowbar_framework/config/routes.rb                 |   65 ++++---
 .../db/migrate/20120723233100_create_navs.rb       |    8 +-
 .../doc/default/crowbar/devguide/api/group.md      |   49 ++++-
 .../doc/default/crowbar/devguide/api/node.md       |   32 +++-
 .../default/crowbar/devguide/makingbarclamps.md    |   24 +++
 .../doc/default/crowbar/devguide/testing.md        |    8 +
 .../doc/default/crowbar/devguide/testing/bdd.md    |  216 ++++----------------
 .../default/crowbar/devguide/testing/bdd/dsl.md    |   51 +++++
 .../default/crowbar/devguide/testing/bdd/steps.md  |  123 +++++++++++
 .../default/crowbar/devguide/testing/devtool.md    |    7 +
 40 files changed, 1153 insertions(+), 507 deletions(-)

Crowbar-Pull-ID: 116526f6fde7c1be4c2e25dca078f5b9a2da0370

Crowbar-Release: development