Mixin my class family's Collection module up to Fog::Service's

`Fog` was not designed to support class families under `Fog::Service`.
For most cloud providers, this is perfectly understandable.
OpenStack-based providers, however, need the ability to share
code. Otherwise what ensues is the kind of copypasta that we've
seen between the OpenStack, Rackspace, and HP providers.

This fill mixins each dynamically generated `Collections` module,
per service, walking up the class family until it finds `Fog::Service`.
This allows for the "TNG" effort between Rackspace and HP to
implement `Fog::Service` < `Fog::OpenStackCommon:IdentityV*` <
`Fog::Rackspace::IdentityV*` and allowing for full reuse at the
leaf classes in the class family.