Do not re-query for proposal objects

The first collection of proposal objects seems to be read-only (i.e. no
destructive ops are performed on it, so there should be no need
to do another query.

This cuts loading the barclamp index page down by almost 50% (1500ms -> 800ms
on a warmed-up server).
Move role revision updates to a separate method
Use proper locking for node allocation

save is refactored to accept a code block that needs to be
protected with the role lock. Make use of that in allocate
and convert usages of previous allocate functions accordingly.
Merge pull request #1055 from bkutil/remove_duplicate_query

Do not re-query for proposal objects
Merge pull request #1056 from dirkmueller/master_use_locking_for_allocate

Use Proper Locking for allocate
BNC#872793 Use links instead of data-href in node dashboard

https://bugzilla.novell.com/show_bug.cgi?id=872793

Instead of using data-href loading of new content, use regular links for
the nodes dashboard.

This is a workaround for cases when the ajax-based loading results in
500 error and there is no indication of what went wrong. With links, an
error page will be shown instead.
Remove ajax loading of node details from the dashboard
Canceling edit leads back to node page
Merge pull request #1058 from bkutil/links_in_node_dashboard

BNC#872793 Use links instead of data-href in node dashboard
Display node list in node show view as well

https://bugzilla.novell.com/show_bug.cgi?id=872347#c5

Once in the node show view, there is no easy way to navigate to other
node w/o going to the dashboard.

Display the (uneditable) node list below the node info.

Refactor the fetching of node groups into a separate method, then re-use
it in the show action. Similarly, split out the node list table into a
partial, then render the partial in both the index and the show views.
Merge pull request #1059 from bkutil/display_node_list_in_show

Display node list in node show view as well
Fix bug causing empty chef_export tarball

Due to shell expansion not being in effect when calling system with
array of arguments, the tarball w/ chef export ended up empty.

Pass a list of files to be archived as individual arguments instead
of a glob.
Do not move the exported file if tar fails
utils: Do not unlock a nil lock

If we fail to get a lock for any reason, we should not try to unlock it
during the exception.
Merge pull request #1061 from vuntz/fix-utils-unlock

utils: Do not unlock a nil lock
Fix the revision race check

With commit 62fabf3a65d the revision update was move to a place after the race
check. So we need to check for old_rev > new_rev now.
Merge pull request #1064 from rhafer/race_check

Fix the revision race check
Remove revision from RoleObject, duplicates crowbar_revision
Rename revision -> crowbar_revision, fix call to role & sync check
Refactor incrementing crowbar revision to a separate method