Add obj_make_compatible()

This adds a method to NovaObject that allows it to convert itself to
and older version, within a compatibility window. So, if an object
had a revision that added or changed the formatting of an attribute,
the obj_make_compatible() method can fix up a primitive representation
before it is sent to a client expecting the older version.

This is primarily intended to be done by conductor when object(s)
are returned from classmethods by potentially-older compute nodes
with older object representations.

Related to blueprint icehouse-objects

Change-Id: I95772e8d3290443c43e57955384ea4fc20b9dcce
Merge "Add obj_make_compatible()"