Made DBObject's state private.

Moved all manipulation of the DBObject fieldAry into a variety of new
DBObject constructors.  fieldAry is now both private and final.

This helps simplify the Ganymede server's logic by improving DBObject
encapsulation, and reduces risks of dangling DBObject references.
Document the difference between DBField.copyField and DBField.copyFieldTo()
Oops, we need to have myInvid set before we call DBObject.receive(), so that namespace handling works.
Made DBObject's state private.

Moved all manipulation of the DBObject fieldAry into a variety of new
DBObject constructors.  fieldAry is now both private and final.

This helps simplify the Ganymede server's logic by improving DBObject
encapsulation, and reduces risks of dangling DBObject references.
Document the difference between DBField.copyField and DBField.copyFieldTo()
Cosmetic tweak in DBObject receive constructor.
Fixed some double-initialization of finals in DBObject constructors.
We don't need to have a non-null permCacheAry in DBObjects processed from the journal.
Removed needlessly cached permManager reference out of DBObject.
Removed replaceField and clearField from the now closer-to-final DBObject class.
Better documented the DBObject.clearFieldPerm() method.