Forward port initial commit from coe-service-patch

This patch is a forward port of the initial nova work in the
puppet-coe-service-patch module.  Unfortunately the git log
is rather unhelpful:

---
commit a2ab9c834cfb3fe855fb90d271d60d05bce901b2
Author: Ryan Uber <ru@ryanuber.com>
Date:   Thu Feb 13 13:17:18 2014 -0800

    Initial commit of module from allen sources
---

The original patch made some strange changes vs stock COI h.1:
* It reverted the part of 0b2c628666983ae5f1ad9962d16d27a3a34c220f
  that touched nova/compute/api.py, but not other files.  This patch
  deals with moving headroom calculations into quote_reserve().
* It reverted 1d2a0b8cc640efc858242f070f96449f679b343a
  which pushes processing of the BDM earlier to avoid duplicates.
* It reverted the part of 54fa794e67a93a823fbd772ae8ef5b4d96d4bb5f
  that touched nova/compute/api.pt, but not other files.  This patch
  deals with fixing instance deletes when cells are used.
* It reverted cad49c3f2aac14b9934ee160a650d4a7b9809d66
  which cleans the BDM when snapshoting volume-backed instances.
* It reverted a582ed15e71f1dc3643c1c5667a381a249d3f771 which
  removes a spurious log message.
* It reverted ed7f1888cdb075e935f5aa5e7098b93f8a944a82 which adds
  notification on deleting instances without a host
* It adds an original body of work around volume creation.

All of those changes save the last one appear to be the result of
a developer working against an outdated code tree, and I've therefore
ommitted those segments of the patch here as I don't believe they
are necessary and are, in fact, harmful.

Implements: rally-user-story US4145
Implements: rally-task TA3473
Not-in-upstream: true