Manage None value for the 'os_type' property

The I2bab617f6c1e8866650ca7dc5178b640738c9ae6 introduced a way to pass the
'os_type' property to glance when we are doing a snapshot in the libvirt
driver. Currently the code doesn't manage properly the None value for this
property and so None value is passed to glance which creates an image with
a property called 'os_type' with value 'None'.
As results of that all instances booted from a snapshot with this property will
have None value in the os_type field.
That field is used to create file name for backing images for ephemeral disks.
Now consider this scenario:
we boot an instance from an image without the os_type property defined and
with an ephemeral disk of 50 G
the resulting backing file will be called ephemeral_50_default.
At this point we take a snapshot from that instance and we boot a new instance
using this snapshot, and because of this bug we will have a new backing file
called ephemeral_50_None.
That is bad because is leaking resources in the host.

Please note that I did a small refactor of the code to make my change testable.

Change-Id: I40bca2732ee2c911344e9d361612007da1c7c3cf
Closes-bug: #1240542
Fix i18n issue for nova/compute/manager.py

There are some log message in nova/compute/manager.py does not follow
I18n coding style, we should update this.

Change-Id: Ia566b5377e27bc9883a3d191346ba4a83df385ff
Utilizes assertIn - tests/etc

Using assertTrue and the 'in' operator to test
if an element is in a sequence is too python2.4.
Our unit testing framework supports assertIn,
which was created for these types of tests.
Adapting assertIn will enhance the readability
of the test scripts.

Change-Id: Ib44d57e75238691234c5290d13c54c526a6ae64b
Make Object FieldType take an object name instead of a class

The object infrastructure has a concept of an object name, which
is what we use to determine if something implements a particular
thing, and it is how we look up object classes when we
deserialize them. Since many objects will eventually reference
each other, we should be using their names to determine
compatibility, not their classes.

Related to blueprint structured-object-fields

Change-Id: I2edb8b8475662ad25e9f3319ce5e44317a2d0547
Merge "Fix i18n issue for nova/compute/manager.py"
Merge "Make Object FieldType take an object name instead of a class"
Merge "Manage None value for the 'os_type' property"
Merge "Utilizes assertIn - tests/etc"
Make cells info_cache updates more tolerant

Allow lists or network models to be passed in for
instance['info_cache']['network_info'] in cells updates.  Ultimately
these messages will become more consistent when fully converted to objects.

Change-Id: Ifd46a3060418b3e2e4073c3b232937a18a225f99
Closes-bug: 1240730