Upgrades, don't kill new containers during the upgrade

Stopping of new containers during the upgrade
leads to a lot of errors and raise conditions.
At the same time containers should be run under
supervisor because we need to store logs.

Rewrote upgrade flow:

* stop old containers
* upload the images
* generate supervisor config with autostart False,
  it allows to prevent supervisor to run containers
* run containers in method `create_and_start_new_containers`
  one by one in right order
* regenerate configs for supervisor with autostart
  True, to start all of the containers after supervisor
  restart
* verify containers

How it helps:

* there was race condition when we were running
  services via supervisor and iptables cleaning
  at the same time, supervisor not always was
  able to start all containers, as result we
  could get nat rules with the same port but
  different ip addresses
* containers stopping could interrupt non-atomic
  actions, like db migration in keystone container
* since we run container one by one, we will not
  be able to get problem with ip duplication,
  during the upgrade

Related-bug: #1357357
Related-bug: #1364087
Closes-bug: #1364054
Change-Id: I86accb8b2c2fc5a15425e32838a58c9b45022d8d
Merge "Upgrades, don't kill new containers during the upgrade"