Handle circular references by invoking PkgPartSetInstance() the
moment we create the object, rather than waiting for it to be
fully populated.

The eMate's package for either NewtWorksDoc or NewtWorksDraw
contains such a circular reference, as illustrated by this
output:

11377 void PkgPartSetInstance(pkg_stream_t *, uint32_t, newtRefArg) p_obj=0x0075334c, ix=0x001d4c8d
11377 void PkgPartSetInstance(pkg_stream_t *, uint32_t, newtRefArg) p_obj=0x00753d10, ix=0x001d4efe
11377 void PkgPartSetInstance(pkg_stream_t *, uint32_t, newtRefArg) p_obj=0x00753d28, ix=0x001d4f04
11377 void PkgPartSetInstance(pkg_stream_t *, uint32_t, newtRefArg) p_obj=0x00753d44, ix=0x001d4f0b
22754 void PkgPartSetInstance(pkg_stream_t *, uint32_t, newtRefArg) p_obj=0x00755378, ix=0x001d5498
11377 void PkgPartSetInstance(pkg_stream_t *, uint32_t, newtRefArg) p_obj=0x00755544, ix=0x001d550b

(Where the first number represents the number of times SetInstance
was called for that particular p_obj)

As our p_obj's may be very high during RExBlock package importing,
we'll be creating crazy lengthed array for the instances. Be kind,
subtract our dataOffset off the p_obj.