Uses Hibernate metadata to persist imported objects. This code is a direct port of the old import code that was
scattered between ReverseDatabinder and poorly factored helper classes. Hopefully, though, it is a lot easier
to understand encapsulated here.
Limitations: the ReflectiveObjectPersister is NOT generic enough to persist anything you throw at it. It
makes assumptions about the objects that are true of most Confluence hibernate objects: including the presence
of an ID of type Long. Types that the reflective persister can not handle will need their own specific persister,
for example PropertySetItemPersister.