Add real referential integrity to our database.

Add the foreigner gem as a requirement, and add appropriate foriegn_key
declarations into our migrations.
do trasaction only if we have data
initial pass at saving attributes from generic form

drill down to attrib show works

update attribute values from deployment & node role
Merge pull request #80 from VictorLowther/add-referential-integrity

+2 Add real referential integrity to our database.
Make database seed loading really fully transactional.
Simplify enforce_acyclic when creating role_requires.

Instead of manually iterating over all the role_requires to find
conflicting ones, fix up the all_role_requires view to have the
functionality we need to do it in one shot.

If we find a cyclic role dependency, we will spit out all paths through
the role dependency graph that would be made cyclic.
Merge pull request #81 from newgoliath/master

+2 note to su to crowbar user
Merge pull request #82 from VictorLowther/simplify-role-requires-acyclic-checking

+2 Simplify role requires acyclic checking
Merge pull request #83 from newgoliath/master

+2 w/ BONUS points.  install berkshelf in crowbar users context with rvm
do trasaction only if we have data
initial pass at saving attributes from generic form

drill down to attrib show works

update attribute values from deployment & node role
add some helpful information about a common error
Merge branch 'master' of https://github.com/cloudedge/core
fix typo
do trasaction only if we have data
initial pass at saving attributes from generic form

drill down to attrib show works

update attribute values from deployment & node role
add some helpful information about a common error
fix typo
Merge branch 'master' of https://github.com/cloudedge/core
correct docker logic as requested by @victorlowther