Beginnings of The Great Dependency Brushing

Checkpoint.  Starting to rebuild the whole Modules system, to remove all
the system-wide dependency cycles.  This is a big freaking project,
albeit largely refactoring, to break the static cycles and reduce
compile times.

Introduced the notion of PropertyInterface, and applied that to
DefaultValue.

Began to rewrite the way OIDs are defined, to be part of the API of a
Module instead of its implementation.  (Which makes sense, and I should
have done it this way from the start.)  Finally beginning to get a sense
of what the "API" of a Module needs to look like.