Fixed a bug where nodes were being registered before they had been fully
initialized, causing them to be used by model observers plug-ins while
in an unusable state. From this point forwards, the
registerInitializedNode() method must be explicitly invoked at the end
of the constructor of all final classes, to ensure that initialization
happens after construction is finished, and to ensure that
initialization happens once, and only once. At present,
registerInitializedNode() is being called from some non-final classes
until we can re-organize the inheritance hierarchies to avoid this.