Reuse module `exceptions` from Oslo

The exception module in oslo common code and in keystoneclient are similar.
In case of unification openstack clients, we should use modules from Oslo.

Changes of this patch:
- imported exceptions from common code instead of `apiclient.exception`
- added aliases for exceptions which was renamed
(reason: backwards compatibility)
- moved exceptions `EmptyCatalog` from `apiclient.exception` to `exceptions`
- cleaned `apiclient.exception` from duplicated exceptions
- `apiclient.__init__` and `apiclient.exceptions` are kept and labeled as
'deprecated'(reason: backwards compatibility)

bp common-client-library-2

Change-Id: Iedf4e5d753d4278d81751ba0f55fdef3566b56de
Allow passing auth plugin as a parameter

This further separates the concept of session and auth plugin so that
the session can be a completely standalone transport layer.

This is similar to how requests handles things. You can install an auth
plugin on the session object and then everything that works through the
session will be authenticated or you can specify the auth plugin per
request and only authenticate that request.

Change-Id: If4ed5af831cc35e259d9f963062261819f08a9d5
Merge "Reuse module `exceptions` from Oslo"
Merge "Allow passing auth plugin as a parameter"