Add back service lookup by barclamp name

The cherry picked commit d55963f459e658cdc7121f63edac52c3213820a2
references Service class lookup by barclamp name that was refactored in
stoney in 290b00bd14a5cea26f77bf169e326848c55ced2e as it was no longer
used.

Add back the service lookup.
Refactor Kernel.const_get("#{barclamp}Service")

ServiceObject now has its own function to do just that.
Merge pull request #1002 from bkutil/add_back_missing_service_lookup

Add back missing service lookup
Plugin for toggling visibility on cluster deploy

We need to show/hide certain parts of barclamp configuration only when a
cluster is deployed. This jQuery plugin adds that functionality.

Example usage:

<fieldset data-elements-path="database-server" data-show-for-clusters-only="true">

This element (and its children) will be shown only when:

1. A cluster is already part of a deployment
2. A cluster is dragged into the node list

The data-elements-path specifies where to check in the deployment JSON
for already deployed clusters. data-show-for-clusters-only enables this
plugin for a given element.

(cherry picked from commit 1b710e3121128237ac555e385a23534113d421d3)
Add huge fixme

(cherry picked from commit 8fefb64e8caac78b833336cb85f1235701786cad)
Initialize cluster conf plugin in application.js

(cherry picked from commit 0043307898a81d18069a1f815766ae73ddb8ef9f)
isCluster matches on ":" instead of "cluster:"

as suggested by @tboerger

(cherry picked from commit 3910c003a81fdad361c039b34bd02d9ae17ef3b4)
Add helper for finding unclaimed drives

This is a prereq for cinder to check if any disk-backed volume can be
created.

(cherry picked from commit aa37d48140d46466634eaa40ec4573e54b3af1af)
Handle removed node referenced by another proposal

When another proposal removes a node which the current proposal
references, the corresponding DOM element is no longer available in the
deployment list. However, info from this element is needed by the
nodeList, when it triggers an event that a node has been removed.

Make the nodeList look up the info in some other way.

(cherry picked from commit cd7be03a17cb2b77140003438db1544d65ef01f0)
webui: Sort clusters in the list of clusters

(cherry picked from commit 284af51b72cdf0ee8789d552f12547602621ee6c)
Merge pull request #1009 from vuntz/roxy-sync

Sync with roxy
Add intended role to bulk edit table

BNC#872473

Drop description and public name fields and replace them with intended
role.
Add the public name back
Merge pull request #1012 from bkutil/bulk_edit_table

Add intended role to bulk edit table
dynamicTable overwrites changes w/ old data

BNC#865526

The dynamicTable plugin caches the proposal attributes JSON in it's json
property and does not take into account that the data might have
changed when it writes its own copy back.

This fix minimizes the race window. Another one would be to
make sure we always operate only on the path + value that changed.

(cherry picked from commit fe5fc3e7c3c6300a6f1d50088bba549a403eb58f)
Do not rely on TCP keep-alive for running commands through ssh

The timeout for this is huge (not sure how big, but certainly more than
10 minutes). This is extremely bad when we run chef-client over ssh
while applying a proposal because if the host goes down, we will be
totally blocked for too long. This happens even more since we have HA
and STONITH can kill nodes.

Instead, we use the ServerAliveInterval=15 option, which means we use a
ssh-internal mechanism for a 15s timeout. It will try this three times,
resulting in a 45s timeout before giving up. This is largely enough in
the context of crowbar.

(cherry picked from commit ba137a2532b8da1008ad85625a41ef74c43607c4)
Merge pull request #1013 from vuntz/roxy-sync

Sync with roxy