Add support for copying an object to an object::with_zone.

In short, I wanted to use object::with_zone as variant storage that can be serialized later. Turns out this can actually be done with only a few minor changes.