Add new set of OpenStack modules

The new modules do all of the keystone v3 and are using common library
code to be consistent. These are aimed at consumers of the cloud -
subsequent os_ modules for cloud admin may have project names ... like
os_keystone_tenant, for example - with the reasoning being that an
end user of a cloud should not need to know service code names, but a
cloud administrator certainly knows what's running.
"Baby JSON" no longer exists in ansible so this print will not work correctly. The correct pattern should be something like:

```
try:
    import something
    HAS_SOMETHING = True
except:
    HAS_SOMETHING = False

# Some other stuff

def main():
    module = ...
    if not HAS_SOMETHING:
        module.fail_json(msg='missing something python module')
```