Allow using the serial number for defining the bus order

This syncs in the latests changes from the get_bus_order function in the
"barclamp" cookbook of the "deployer" barclamp.
Fix NodeObject.save to properly remove elements from node

When an element got removed from the role, we also need to remove the
element from the node when saving it.

Chef::Mixin::DeepMerge::deep_merge is not removing any element, it's
just adding/replacing. So we need to have an old copy of the role
attributes after the last save, to be able to identify the removed
elements, and remove them from the node elements.

Note that there's a knockout_prefix option in
Chef::Mixin::DeepMerge::deep_merge that we could use, but it doesn't
really remove the element (it gives it an empty value) and it's gone in
chef 11.
Remove mention of redhat_install and ubuntu_install barclamps

They're not used since quite some time.
Fix error handling in find_role_by_name

When find_role_by_name was called while the chef-server was restarting
(Chef::Role.load throwing a connecting refused exception) this was handled as
if the role was not present in chef. This can lead to a problem where the
Node Role of the admin node will be overwritten, when the chef-server is
restarted while a client tries to load http://<admin>:3000/nodes/status.

This patch changes find_role_by_name to only return nil if Chef::Role.load
returns "Not found". All other exception thrown by Chef::Role.load are treated
as errors.
Make it possible to disable crowbar users

In some cases, it might be desirable to add additional users to log in
crowbar, and therefore to also enable/disable them. A new optional
"disabled" attribute can be used for this.
Fix utils_line

Fix one obvious typo (1 instead of l, which could break everything --
we're lucky it never did), and always append \n to the line to add (we
were not doing that when also removing a line).
Allow passing an incomplete json when creating a proposal

Until now, when creating a proposal with some existing json, it was
required that the json contained a full proposal definition. Two big
downsides of this are:

 a) it's easy to break stuff by accident when changing a proposal
 b) if the schema changes to add new mandatory attributes, people can
    not simply re-use old json they had around; they have to update them

This commit allows passing an incomplete json with only a subset of
attributes. It will take the default json, and overwrite any attribute
there with the ones from the incomplete json.

Such an incomplete json must have a crowbar-deep-merge-template toplevel
attribute set to true. Otherwise, the old behavior is kept.

Note that this is not using Chef::Mixin::DeepMerge::deep_merge! as a
deep merge is also merging arrays in attribute values, which is
something not desired here. The hash_only_merge! API is actually
available in Chef 11 in Chef::Mixin::DeepMerge, so this is just a
backport.

For all that matters, this is backwards-compatible.
Sort help for "machines" and "node_state" areas (bnc#828669)
Merge pull request #603 from saschpe/release/pebbles/master-sorted-help

Sort help for "machines" and "node_state" areas (bnc#828669)
Merge pull request #588 from vuntz/fix-utils_line

Fix utils_line
Merge pull request #587 from vuntz/allow-disabling-users

Make it possible to disable crowbar users
Merge pull request #586 from rhafer/fix/find_role

Fix error handling in find_role_by_name
Merge pull request #583 from vuntz/remove-old-barclamps

Remove mention of redhat_install and ubuntu_install barclamps
Merge pull request #579 from rhafer/pull-req-release-pebbles-master-ead8713cdc2ce28d97bab36901b28238e32bb08e

Allow using the serial number of a node as an additional matching criteria for the bus_order [2/3]
Merge pull request #580 from vuntz/fix-node-save

Fix NodeObject.save to properly remove elements from node
Merge pull request #589 from vuntz/allow-incomplete-proposals

Allow passing an incomplete json when creating a proposal
[Security] Upgrade from Rails 2.3.17 to 2.3.18

Update to latest Rails 2.3.x stable release. Fixes the following CVEs:

  * CVE-2013-1854 Symbol DoS vulnerability in Active Record
  * CVE-2013-1855 XSS vulnerability in sanitize_css in Action Pack
  * CVE-2013-1856 XML Parsing Vulnerability affecting JRuby users
  * CVE-2013-1857 XSS Vulnerability in the sanitize helper of Ruby on
    Rails

http://weblog.rubyonrails.org/2013/3/18/SEC-ANN-Rails-3-2-13-3-1-12-and-2-3-18-have-been-released/
Merge pull request #598 from jamestyj/release/pebbles/master-rails-2.3.18

[Security] Upgrade from Rails 2.3.17 to 2.3.18
Change puts call to log with debug to avoid unneeded spam
Merge pull request #612 from vuntz/puts-is-debug

Change puts call to log with debug to avoid unneeded spam