Made FieldOptionDBField.matrix private
Some micro-optimizations to avoid unnecessarily creating StringBuilders

DBEditObject.diff and getDiffString() on DateDBField, FieldOptionDBField,
InvidDBField, and NumericDBField defer creating a StringBuilder to generate
diff messages until changes are actually detected.

No one will ever notice any performance improvements from my doing this
in a million years, but I couldn't help myself.  ODC for the..
Taught FieldOptionDBField to avoid doing unnecessary cleaning.

Previously, FieldOptionDBField would be constantly scanning itself
to try to get rid of any references to fields that had been removed
from the Ganymede server with a schema edit.

Now, this is only done if the server's schema has been edited since
server startup and we're doing an emit or we're doing a receive.
Whitespace.
Improved documentation on invid_field / InvidDBField choices().