Cleaned up DBField.copyFieldTo()

Got rid of extraneous retVal local variable.
Made owner and fieldcode in DBField final, private.

Moved initialization of these fields to the DBField
constructor, made all use of these formerly public fields
go through getOwner() and getID().

This just makes sure nothing will accidentally edit these
import fields and violate the consistency of the system.
Cleaned up difference() in VectorUtils

Previously, difference() did not guarantee that it did
not return any duplicates in the returned Vector.

It's more expensive now, but the guarantee is worthwhile.

Also elaborated the javadoc header for minus() and difference()
to underly that they do different things.
Modernized, cleaned up InvidDBField.

Got rid of pre-Collections API style Vector usage.  Took advantage
of Java 5 enhanced for loop where possible.  Cleaned up some
hacks that did local set comparisons rather than using VectorUtils.
Documented the use of the private qr field in InvidDBField a bit more
Locked down some low-level methods in DBObject

replaceField(), clearField(), etc., should not be manhandled by
custom code, so I've made them package private.