Add __repr__ handler for NovaObjects

This adds a __repr__ implementation for the base NovaObject which
should help debugging by compactly describing the contents of an
object. This adds stringification helpers to the Field object(s),
which lets us control what each type looks in compact format. Since
this is just for debugging, we avoid recursing too deeply on nested
objects and the like.

Change-Id: Ic604acfda7e7c7adb913479355726e16ad375f1d
Move the instance_type_id judgment to the except-block

If the instance types are not stashed, will fallback to the
conductor API to retrieve them. So the instance_type_id is
only used in except-block.

Change-Id: If45eb01dd8292e87eda6516cd79c94fb7f6005fb
Merge "Add __repr__ handler for NovaObjects"
Merge "Move the instance_type_id judgment to the except-block"