Store volume metadata as key/value pairs.

Remove the unnecessary list of elements named "key" and "value"

Fixes Bug #1197021

Change-Id: I2667f3e3a563bd72230c82f4fd42b8808904444d
Add cells get_cell_type() method

This moves/consolidates some the deprecated config code for cells into
nova/cells/opts.py and creates a new method to determine the cell_type
that we can use in other places where logic needs to differ depending on
'compute' or 'api' cells.

This also may happen to fix bug 1197091.  I'm unable to reproduce that
bug in tests, unfortunately.

We'll need this soon for some object related conversion.

Related to blueprint unified-object-model

Change-Id: Id291759fabb71656be18fb1eb405fcd5983f84ae
Add object (de)serialization support to cells

This adjusts the cells rpcapi to use the Object serializer class.
This also makes the cells messaging layer, which handles formatting of
cell<->cell messages, serialize objects correctly when contained as
arguments to the cells messaging methods.

Related to blueprint unified-object-model

Change-Id: Iec328827819f25a16d1fd901f4d6c896525f0bb6
Merge "Store volume metadata as key/value pairs."
Merge "Add cells get_cell_type() method"
Merge "Add object (de)serialization support to cells"
Merge remote-tracking branch 'm_src_repo/citrix-fixes' into build-temp