Object Versioning: better copy routine (for versions of objects)

handles arrays, functions, and dates much more appropriate