Introduce wait_backoff, fail_if_empty wrappers
Introduce wait_backoff, fail_if_empty wrappers

* wait_backoff wrapper retries the command several time increasing backoff
  timeout exponentially. Its log is added to to stderr.

* Under some circumstances (race condition), stack may be created but it's
  resources are not. fail_if_empty wrapper fails if no output received.

* Some openstack commands were wrapped as there is a delay between stack and
  resource creations. Usually it's not visible on speedy environments. However,
  when undercloud is located on small VM or cloud flavour is m1.medium then a
  race condition may occur as heat creates stack and its resources
  sequentially. This means there may be cases when stack is created but its
  resources are not. Wrapping openstack calls with wait_backoff and
  fail_if_empty guarantees output with proper exit code

Change-Id: If10f4d58f3689bc7d817c8ac2c31e48501e937ce

dprince/tripleo-heat-templates,dprince/tripleo-heat-templates,openstack/tripleo-heat-templates,openstack/tripleo-heat-templates