Implement pluggability for tempest (exceptions)

First patch of three patches:
->1. exceptions
  2. config (+ module_utils.py)
  3. clients

The main intend is in moving currently existed single 'exceptions' module in
exceptions tree.
It allows separate exceptions by differencies:
- base
- main/common
- project-specific

It also allows to simplify search and using of exceptions, merge changes into
Tempest with minimized amount of merge conflicts.

Partially-implements: bp make-tempest-pluggable

Change-Id: I5c50affba0fce721583a6d56216e56c94ec3b188
Improve tempest auth tests

Added tests to base_url method.

Also include general improves to make the fake api response look different
avoiding false positives.

Partially implements bp unit-tests

Change-Id: I5552b44998cd85c39221b8de298629e0b77f99cb
Cleanup _interface class variables in compute

We've already removed these variables in Nova v3 tests.
  Change-Id: Ie9ad2242d20ce90fca74ca7a5390e0971f830caa
But we can remove these not only v3 tests but also v2 tests. This commit
sets _interface = 'json' to BaseV2ComputeTest and removes redundancy.

Change-Id: I10110b92ed9a34eedef210ad8408f78d64ba4ee6
Merge "Improve tempest auth tests"
Merge "Cleanup _interface class variables in compute"
Merge "Implement pluggability for tempest (exceptions)"
Merge branch 'master' of https://github.com/openstack/tempest