Add the main Cells code.

Conflicts:

	nova/compute/manager.py
	nova/db/api.py
add NoopQuotaDriver for child cells

Can be used to disable quota checking in child cells by specifying:

quota_driver=nova.quota.NoopQuotaDriver
For quotas and resize and cells: commit reservations immediately for now

There's not an immediate good solution for quotas on resize with cells
due to how it's implemented.  Will have to revisit this with a better
patch later.  This can lead to some out-of-sync issues when deleting
things in certain resize states... or if there are resize errors.

Also:

Store migration information on API cell to correctly handle quotas

Revert and confirm of migrations require access to migration information
so they can calculate the reservation correctly. For new resizes, store
a migration record locally so it can be used later on. For old resizes,
keep the previous behavior (for now).
Add cells support to instance_usage_audit_log api extension
Add cells support for hypervisors extension
Add cells support for reset_state to admin_actions extension
Reduce the create_image call depth for cells

This patch reduces the create image call depth by returning the
basic image details to the user before the cell associated
with the instance is identified. This decreases the time taken
to respond to the user, which in turn decreases the 500 errors.
Makes OS admin api list hosts in child cells
Added versioning to the cells API

This gives the cells service an interface consistent with how other
services in Nova work.

nova/cells/api.py is now an "rpcapi", wrapping all client-side RPC
operations.
Fix typo in nova-cells

Change-Id: Ib11904f960131c187b1c5173522423e4fd81c9df
Move cells configuration into a 'cells' group

The 'DEFAULT' group in nova.conf is huge. For big new chunks of
functionality, we should put the new config options into a group
to help better organize our config.

So, instead of e.g.

  [DEFAULT]
  enable_cells=True
  cell_name='blaa'
  cell_db_check_interval=30

we'd have:

  [cells]
  enable=True
  name='blaa'
  db_check_interval=30

Also, move some options from nova.flags into nova.cells and use
flags.DECLARE() to explicitly show which modules use those options.

Change-Id: I398387687fd6b086e105385b5c8ee0ef39f2a807
Use existing nova-manage helper infra for cells

Rather than have an explicit help sub-command - which none of the other
command classes have - just use the existing decorator for arguments
and benefit from the existing optparse based infrastructure.

Change-Id: Idf06a9ea45736d3c7d4c7308a90f114614db3e7d
Remove get_{parent,child}_cells() from cells RPC API

Any Manager methods which aren't prefixed with underscore are considered
part of the RPC API. These methods shouldn't be part of the RPC API, but
they are public methods of the class. Prefixing them with underscore
isn't ideal, but it's better than allowing them to be part of the
versioned RPC API.

Change-Id: Iddeff5f035e5288e9558998fa6edab9f43ee25f1
add missing cells_manager declaration
Minor fixes

We don't need to sync instance metadata upward, as it doesn't update in
child cells.
Make printing CellInfo instances show cell name, etc.
Use instance uuid for security groups
support DB methods down the cells chain too
Generic method for broadcasting a db method down
Fix dbapi method down, was executing twice on originating cell
Indent error