LT-14378 fix two problems in DB4O backend

It's difficult to see the two distinct changes because one of them
is hidden in a block of mostly moved code.

To handle newbies being passed as dirtballs, the dirtballs code was
moved before the newbies code, and some of the init of commitData
was moved after it, and we convert dirtballs that don't already
exist to newbies.

To handle data migrations which change the class of an object,
the dirtball code calls Update() instead of just copying the XML
to the real database object.

Change-Id: Ie5eff7b84eaa288509bbf5464f7a53c6b4799c77