Add a function for joining URI paths

Previously we would simply concatenate two paths and hope that the
user had specified them correctly. While this would work most times,
it not really correct. Additionally, URI::join is great at joining
URI's, but not as much for only joining paths.

This function strips out all slashes and then rebuilds the path with
a join('/') preserving leading and/or trailing slashes.
Add an http library module

Previously this http logic was duplicated in the openstack-identity
providers for both regsiter and credentials. As we should not have
duplicate code and because this logic might be useful for other
callers, moving it to openstack-common.