Add checks for nimble san devices

Adding some checks for nimble san devices. This can be augmented as we
determine which other checks are important, but this is a good first
cut.
testenv: Use cirros 0.3.3
Add Keystone public and admin endpoints

Some of the newer clients have begun to do service version discovery.
With that, they interrogate Keystone for the version that is supported,
and then use that data to pass all further authentication requests on to
the href provided by the query. In our case we were always returning
localhost as the next hop. This is clearly not correct.
Merge pull request #500 from blueboxgroup/cirros-0.3.3

testenv: Use cirros 0.3.3
Jinja fails me again

Jinja doesnt support standard truthiness. Therefore, unset the default
and add an "is defined" to the conditional. Argh, Jiiiiiiinja!
Merge pull request #502 from craigtracey/nova-cpu-models

Jinja needs null, not None, for if False
Merge pull request #501 from craigtracey/keystone-endpoint

Add Keystone public and admin endpoints
rabbitmq: Cluster default to false, not undefined
Remove v2.0 public_endpoint and admin_endpoint

Erroneously added the keystone version to this endpoint declaration. It
should simply be the fqdn and port.
Merge pull request #506 from craigtracey/keystone-endpoint-2

Remove v2.0 public_endpoint and admin_endpoint
rsyncd: Fix misspelled config options
Add support for configurable cinder backends

Adding support to cinder.conf for configuring alternate backends. This
will allow us to back cinder with something like a SAN. Additionally,
as some SAN's may not have native cinder support, add the ability to
install alternate python packages.
Merge pull request #488 from craigtracey/nimble

Add support for configurable cinder backends
Merge pull request #493 from craigtracey/nimble-check

Add checks for nimble san devices
Merge pull request #507 from blueboxgroup/rsyncd-config

rsyncd: Fix misspelled config options
logging: role; local UDP based; with forwarding

Python <2.7.4 has an issue with direct unix socket syslog logging.
During a rsyslog service restart, the socket is closed and re-opened but
the services using the logging improperly handle the socket close and
start to fail. These services consume 100% of CPU resources until they
are restarted.

This change works around the problem by using rsyslog to listen on
514/udp and the imfile module to follow some individual OpenStack
service logfiles and forward them onto the central logging server.

All nova, cinder, keystone services log to the local UDP port by
default. Only some services need to be manually followed which is
defined in the defaults for the logging role.

Relevant links:
 - https://bugs.launchpad.net/mos/+bug/1363102
 - http://bugs.python.org/issue15179
logging: Use command for ufw, not ansible module
logging: Open ports. before restarting services
logging: Playbook to deploy updates w/restarts
logging: Spacing issues after rebase