Live migrate each instance from one host to other hosts

Using the existing server live_migrate api, this new feature,
adds the ability for admins to live-migrate all running instances
from one host to other hosts. The patch implements the feature
for Nova API V2 and API V3.

Co-Authored-By: Cédric Soulas <cedric.soulas@cloudwatt.com>

Change-Id: Ie8dd1b66fb8eaefa6ff38752b1e4f46bab145820
Implements: blueprint host-servers-live-migrate
Add retry_after only to exceptions supporting it

Having retry_after in HTTP response header for 403 status code caused
client to fail with TypeError exception about unexpected keyword
argument. This is related to bug in nova-api. To prevent this kind of
client problems in the future patch adds check to from_response
function to pass retry-after header only to classes that inherit
from RetryAfterException and regression unit tests.

Change-Id: I6bfc8b33eb591d30b3c647397b11100094718e13
Closes-Bug: 1365251
Add list by user to shell

Adds "--user" as a search option to the list command.

Also since seach by tenant or user also needs all_tenants=1 add
this to the seach options automatically instead of making users
remember to add it

Change-Id: Icc828080b400aecdb320b721c569992677848cc6
Corrects typos "coearse," "proejct," and "unecrypts"

Misspelling of "coerce" found in the docstring body
of method _boot from class ServerManager. Misspellings
of "project" and "unencrypts" found in docstrings
of client.py and crypto.py.

Change-Id: I052c321f3ad5e13aa57a559e2f28ec5eec32a9b4
Merge "Add retry_after only to exceptions supporting it"
Merge "Corrects typos "coearse," "proejct," and "unecrypts""
Updated from global requirements

Change-Id: Id91358b7d4efe79a4be5190dcdb4b0b7cb40f19b
Use common code instead of novaclient.utils

Module `novaclient.utils` contains a lot of functions which are
presented in modules from common code.

* service_type -> novaclient.openstack.common.cliutils.service_type
* get_service_type -> novaclient.openstack.common.cliutils.get_service_type
* pretty_choice_list ->
      novaclient.openstack.common.cliutils.pretty_choice_list
* import_class -> oslo.utils.importutils.importclass
* HookableMixin -> novaclient.openstack.common.apiclient.base.HookableMixin

Change-Id: Ia6cac058da12c852d92f26875a66ae31cc4c63d4
Use oslo.serialization

Since module `jsonutils` from common code is graduated in
`oslo.serialization`, we should remove code from oslo-incubator and use this
library.

Change-Id: Ia8b5ef598ff415cdde19f523a36a552918f9f94b
Merge "Use common code instead of novaclient.utils"
Merge "Add list by user to shell"
Merge "Live migrate each instance from one host to other hosts"
Merge "Use oslo.serialization"