Added explicit sprockets gem loading without bundler
Fix potential race condition in node update

Refs BNC#861527

Processes:

A                        B
Enters locked block      Spins on the lock
Loads node info X
Modifies node info X+a
Exits locked block       Enters locked block
                         Loads node info X
Saves node info X+a      Modifies node info X+b
                         Exits locked block
                         Saves node info X+b

Expected behavior is that B already works with updated info X+a.
Add sorted gem list to environment and gemfile
Rewritten data attributes to accept multi values
Now you can assign multiple values seperated by `;` to
these data attributes:

* data-showit
* data-hideit
* data-enabler
* data-disabler
Dedup locking code in RoleObject and ServiceObject

Move locking code into FileLock class.
Remove unneeded methods from RoleObject
Merge pull request #931 from bkutil/move_locking_into_separate_class

Move locking into separate class
Remove duplicate code
Refactor the barclamp catalog parsing into a separate class
Add shortcut method for catalog['barclamps']
Replace references to ServiceObject methods reading catalog w/ BarclampCatalog
Merge pull request #920 from bkutil/fix/race-in-node-update

Fix potential race condition in node update
Merge pull request #932 from tboerger/feature/fix-gems

[stoney] Added explicit gems to environment.rb and crowbar.yml to prevent version mismatch
Remove extra assignment
Merge pull request #922 from tboerger/feature/multi-data-attributes

Rewritten data attributes to accept multi values
Merge pull request #933 from bkutil/remove_duplicate_display_name

Remove duplicate display name