Move NormalizeURL to the root package.
Turn v2 EndpointURL into a ServiceCatalog method.
Let's expose it in openstack/ instead.

I can't move endpoint location into a method on anything in identity v3, so for symmetry
I'm keeping them in the openstack/ provider directory. I will export them, though, so I
can call them in rackspace/.
Move V3 endpoint location, too.
Remove APIKey authentication from openstack/.
Export and rename the CreateURL function.
Delegate to OS for Rackspace Identity.

But handle the APIKey authentication manually, first.
Apply the OptsBuilder interface to tokens.Create()
Override request body generation for API keys.
Client creation and auth for Rackspace.

Mostly copy-paste. I managed to re-use the endpoint extraction, so that's something.
Adding .gitignore for coverage reports
Testing edge conditions for apiversions
Removing duplication in extract methods
Adding test for edge case
Coverage for V2EndpointURL.
Adding common extract function to root package
Adding more tests for floating IPs
Adding more tests for routers
Removing dead code
Removing unnecessary conditionals from block storage