Setup of clustered rabbitmq

* Setup a rabbit cluster on the controllers.
* Configure nova, cinder, and neutron with new rabbit_hosts syntax.
* Configure glance notifier_strategy to noop.  We are not using
  rabbit with glance.
* Add controllers to /etc/hosts on the controllers.  Since we don't
  have internal DNS, this is necessary for rabbit clustering.
* Added 2 additional ports to open in ursula fw security groups,
  necessary for rabbit clustering.
* Configured erlang's epmd (port mapper) to use a known port.  This was
  done, so rabbit clustering would work in the VM env.
Added rabbit_policy module

This module [1] handles the HA policy setting.  Rabbit 3.x requires mirror
queue policies set on the server vs client.  Module has been submitted [2]
to the upstream ansible project.

[1] http://www.rabbitmq.com/blog/2012/11/19/breaking-things-with-rabbitmq-3-0/
[2] https://github.com/ansible/ansible/pull/4957
Allow clustering to be toggled

Currently turned off by default.
Added rabbit integration tests
Integrated with ansible 1.5 rabbit_policy module
Add a Cinder volume type library

This library provides a method to configure Cinder volume types. This
works for both regular volume types (ie. 'cinder volume-type create') as
well as encrypted volume types (ie. 'cinder encryption-type-create').
Mechanism for making setup conditional

There are a number of times when, during testing, it may be preferrable
to not configure your newly provisioned OpenStack services. This change
provides a mechanism to make setup conditional.
Removed an unnecessary else branch
Merge pull request #147 from craigtracey/cinder-volume-type-library

Add a Cinder volume type library
Merge pull request #149 from craigtracey/conditional-setup2

Mechanism for making setup conditional
Update openstack-setup to configure cinder types

This change takes advantage of cinder_volume_type and openstack-setup
to configure user-specified cinder volume types. It follows the standard
mechanism for conditionally turning these features on and off.
Fix 8.8.4.4 test in tests/task/controller.yml
Add python-virtualenv to the python dependencies

Sometimes it would be advantageous to run python services/scripts
inside of a virtualenv so that we do not pollute the standard
python sysem library paths.
Adding barbican/python-barbicanclient support

This change creates a new barbican role. As Barbican is still in
Stackforge, this change configures it to run from within its own
virtualenv. The service runs under uwsgi which is also part of the
specified virtualenv. Haproxy fronts this service as it would with
any other OpenStack service that we have.  The port has been moved
from 9311 to 9322 accordingly.

In addition to configuring Barbican, this change also installs
python-barbicanclient. We specifically pull directly from github due
to the fact that we have recently pushed changes upstream. These are
not yet in any of the Pypi repositories yet. Regardless, this is how
we manage the other python-*clients, so it will likely stay this way.
This client is installed into the system's python path - no
virtualenv wrangling required.
Remove unecessary cinder yaml config

Based upon feedback in a review, I have removed the unecessary yaml
key for cinder encrypted volume types.
Merge pull request #136 from blueboxgroup/blueboxgroup/clustered-rabbit

Blueboxgroup/clustered rabbit
Rename name: to volume_type: for cinder types

In order to make this a little bit easier to understand, rename name:
 to volume_type: for cinder encrypted volume types.
Create system users for OpenStack components
Adding test for presents of /nonexistant
Remove /nonexistant after installing memcached package