Do initial cargo-cult crowbar coding; implement ceph_get_client_key

Use ceph_get_client_key in the nova.conf file so that nova-volume
gets its RBD config options set up.
Generate a nova-[compute|volume].override file to fill in CEPH_ARGS

Since OpenStack Essex requires CEPH_ARGS to hold "-n <client_name>"
we need a way to set that up for the daemons -- this is it!
Generate libvirt UUID secrets

OpenStack uses libvirt's UUID secret handling to deal with Ceph
keys, so we need to get that data into libvirt and then store
the correct UUID in nova.conf. Make nova::compute do the actual
virsh manipulation, since we don't have virsh installed until
that point.
simplify ceph keyring creation

This convoluted version had its roots in an attempt to keep
keys from being logged in eg command histories -- but it doesn't
do that anyway at this point, and is much simpler now.
use the ceph fsid as the libvirt uuid so it's consistent across nodes

Libvirt xml snippets generated by the nova-volume daemon are sent
to different nodes and used raw, so it all needs to match. And
we also need to generate the UUID everywhere, even if it's not
configured in local libvirt.
All OpenStack clients need to have the same ID.

We were giving each host its own client, but that doesn't work
because of the xml snippets that OpenStack passes around
which contain those user names.
Instead, generate names based on the service so that they're
all using the same keys.
convert name into id for kvm

KVM uses the client's ID (foo), not the client's name (client.foo),
so that's what we need to pass into the config file. Whoops!
Conditionally set up Ceph in nova::compute

We want to be able to use these cookbooks without Ceph. Start
on that sanitation process.
workaround hack: install version of KVM with RBD support

The version of KVM that crowbar (openstack-fred3, anyway)
is installing by default doesn't include RBD support, but it
ships with a version that does. Switch versions.
ceph/config: use execute resource instead of %x; compilation -> convergence
nova ceph: just read the fsid out of node attributes

We were trying to grep it from ceph output, which was making
all kinds of mess in terms of getting the data early enough. But
as long as we're using that static info, we might as well grab it
from the original source -- the node["ceph"] attributes which we
already know are present.
keyrings are owned by nova user instead of being world-readable
Automatically include the ceph-client role where it's needed,
instead of requiring it be already applied.

As part of this, we switch some data pickup from node attribute reads
to search lookups.
remove ceph from proposal dependencies

We can proceed without a Ceph install.
switch the ceph_proposal check to empty? instead of nil?

Despite my best efforts, something about the attributes system
is making it non-nil even if we allocate it that way initially. So
just switch to check if it's empty.
only set ceph_client_id if we're using Ceph
remove debugging puts
do not install a special KVM

This reverts 0a009a20297eda5ba29eff1af853f0aa342c8cf1. This workaround
is still required on older versions of crowbar; the revert is intended
to make it play nicely with the betty release.
enable storage vlan on nova nodes when using Ceph