Refactor OpenStack identity (auth) code and classes, make it more flexible,
re-usable and maintainableL

* Add new module which handles identity related logic
* (libcloud.common.openstack_identity)
* Add new classes for each identity API version.
* Add additional functionality to class for Keystone API v3
* Add new OpenStackServiceCatalogEntry and OpenStackServiceCatalogEntryEndpoint
  class
* Modify OpenStackServiceCatalog class to store entries in a structured format
  (OpenStackServiceCatalogEntry instances) instead of storing it in an
  unstructured dictionary
* Update all the affected code to use the new classes and methods.
* Fix a bug with the CDN requests in the CloudFiles driver.

Also a add new class for each identity API version and add additional
functionality to class for Keystone API v3.

Backward incompatible changes:

* OpenStackAuthConnection class has been removed and replaced with version
  specific classes and "get_class_for_auth_version" class retrieval function.