[openstack|storage] intial import

Porting Fog Rackspace Storage service to OpenStack.
Mostly replaced names, removed CDN stuff (perhaps Rackspace specific)
and used authenticate_v2 (keystone).
[openstack|storage] added OpenStack Storage to lib/fog/storage.rb
[openstack|storage] Added OpenStack.escape utility method

Required by OpenStack Storage service.
[openstack|storage] Added storage service to lib/fog/bin/openstack.rb
[openstack|storage] Added OpenStack Storage service tests

Mostly copy&paste from the Rackspace Storage service
[openstack|volume] Configurable :openstack_endpoint_type

:openstack_endpoint_type is missing as a recognized parameter. This
patch fixes that, and allows the :openstack_endpoint_type to be
configurable instead of hardcoding the value to 'adminURL'

That is, you can create the connection to the service as follows:

require 'fog'

conn = Fog::Volume.new({
  :provider => 'OpenStack',
  :openstack_api_key => ENV['OS_PASSWORD'],
  :openstack_username => ENV["OS_USERNAME"],
  :openstack_auth_url => ENV["OS_AUTH_URL"]
  :openstack_tenant => ENV["OS_TENANT_NAME"],
  :openstack_endpoint_type => 'publicURL', # publicURL, adminURL, etc
})

Defaults to adminURL to maintain backwards compatibility.
[Glesys] Template list request does not take options
[Glesys] Only make one request when fetching templates
[Glesys] Fix template attributes, now they work
[Glesys] Attribute :keepip removed from server model

The parameter :keepip should be passed to the destroy method, it is not
available as a attribute on the server object.
[Glesys] Clean up attributes on server model

Add missing attributes and remove attributes that isn't available.
[Glesys] Add public_ip_method to server model
[Glesys] Add setup method to copy fog ssh keys to server
[Glesys] Wrap ssh method to use rootpassword if present
[openstack|volume] remove extra comma
[openstack|storage] configurable service_type and service_name

- openstack_service_type defaults to object_storage
- openstack_service_name defaults to nil

refs #1496
[openstack|storage] added openstack_tenant and openstack_region params

Added openstack_tenant and openstack_region as recognized parameters
and pass them to OpenStack.authenticate_v2.
OpenStack: get identity tests passing in real mode

Updates to the OpenStack identity tests to they pass in both real
and mock modes.

Also, fixes an issue in the delete_user_role request where it
was expecting 200 instead of 204 (which seems to match the
spec and implementation).
Drop 'extras' from tenant test validations.
Add a zones.find(substring) method to return only zones whose
name matches that substring.

http://docs.rackspace.com/cdns/api/v1.0/cdns-devguide/content/list_domains.html