Break out the meat of the object hydration  process

Since we call the NovaObject base class to hydrate an object, the
subclass implementation does not get a chance to run specific code
during or after hydration. Things like Instance that keep local data for
change tracking need a chance to update themselves after hydration
is complete. This breaks out the meat into a separate method which
can be easily overridden in a subclass.

This also makes Instance use this to ensure metadata tracking is
up-to-date after hydration.

Related to blueprint compute-manager-objects

Change-Id: Ie070c17495f7a4cc6210d256a3170ac9c06e198f
Merge "Break out the meat of the object hydration  process"