Adds db_create_with_user library routine

* Intended to remove the need for osops-utils::database
* Support PostgreSQL and MySQL and does not use the
  mysql-master chef role lookup
Merge pull request #4 from jaypipes/working

Adds db_create_with_user library routine
Typo in db_create_with_user fixed
Merge pull request #5 from jaypipes/working

Typo in db_create_with_user fixed
Change ports from integers to strings...

This needs to be done because the keystone and database
resource providers are retarded and can't handle non-strings
for ports... barfin this:

Chef::Exceptions::ValidationFailed
----------------------------------
Option auth_port must be a kind of String!  You passed 5000.

Cookbook Trace:
---------------
/var/chef/cache/cookbooks/nova/recipes/api-os-compute.rb:67:in `block in from_file'
/var/chef/cache/cookbooks/nova/recipes/api-os-compute.rb:65:in `from_file'

Relevant File Content:
----------------------
/var/chef/cache/cookbooks/nova/recipes/api-os-compute.rb:

60:  identity_admin_endpoint = endpoint('identity-admin')
61:  identity_endpoint = endpoint('identity-api')
62:  nova_api_endpoint = endpoint('compute-api')
63:
64:  # Register Service Tenant
65:  keystone_register "Register Service Tenant" do
66:    auth_host identity_admin_endpoint["host"]
67>>   auth_port identity_admin_endpoint["port"]
68:    auth_protocol identity_admin_endpoint["scheme"]
69:    api_ver identity_admin_endpoint["path"]
70:    auth_token keystone["admin_token"]
71:    tenant_name node["nova"]["service_tenant_name"]
72:    tenant_description "Service Tenant"
73:    tenant_enabled "true" # Not required as this is the default
74:    action :create_tenant
75:  end
76:
Merge pull request #6 from jaypipes/working

Change ports from integers to strings...
Grab superuser/pass from the underlying db-specific cookbook

* No longer pass in superuser/pass to the db_create_with_user
  library routine. Grab that from the underlying db-specific
  cookbook
* Updates doc on routine with links to the related db cookbooks
  to the code that sets this information
String to symbol change in connection_info and fix small typo in doc header
Merge pull request #7 from jaypipes/working

Grab superuser/pass from the underlying db-specific cookbook
Ensure localhost for mysql and ports are integers
Merge pull request #8 from jaypipes/working

Ensure localhost for mysql and ports are integers
corrected keystone api and admin ports
Reworked tests to get them to pass

* brought in dependent cookbooks in librarian
* updated to most recent version of chefspec
Bit of cleanup in the tests and library

Tend to avoid () where necessary when writing ruby.
I know a nit pick.
No longer stub out uri_from_hash

Since we pull in the cookbooks with librarian, let chef act as it would.
Plus `::Openstack::uri_from_hash` isn't a valid method call.
qualified Openstack module name
Ability to return raw uri object for endpoint_uri

endpoint() simply returns node attributes.

This becomes confusing when you have the following...

node['endpoint']['nova']['uri'] = "http://compute.example.com:80/path"
node['endpoint']['nova']['path'] = "/another/path"
node['endpoint']['nova']['host'] = "localhost"
node['endpoint']['nova']['port'] = "8080"

nova_endpoint = endpoint('nova')

This is fine if you want nova_endpoint['uri'].
However, nova_endpoint['host'] is not 'compute.example.com'.

Having the ability to get a raw uri object back would be useful.
Merge pull request #9 from retr0h/working

Quite a few fixes
endpoint_uri() always return an URI object
Merge pull request #10 from retr0h/working

endpoint_uri() always return an URI object