merge changes from ITXT-4
add missing files from ITXT-4
Merge final changes
some code-level documentation
Add oneshot? method to service objects

This allows barclamp to specify that there should not be a second
chef-client run in case of failures. This is needed for one-shot
barclamps, where a second chef-client run won't do anything anymore and
therefore will always result with a success.

See discussion at
http://lists.us.dell.com/pipermail/crowbar/2013-June/003302.html
Merge pull request #8 from crowbar/release/pebbles/master

pull changes from dell
Merge pull request #9 from MirantisDellCrowbar/release/pebbles/master

pull changes from dell
refactoring feature of validating chef attributes
tiny fix
raise error when node not ready -> rescue to sleep(1)
typo
Use /etc/sysctl.d on all platforms

The crowbar-hacks cookbook was updated to create a workaround (via cron) on
system that do not support /etc/sysctl.d/ by default.
The old code was in conflict with code from the network barclamp which
unconditionally created /etc/sysctl.d anyway.
add missing ';'
typo
add empty lines
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.