Dynamically update tabs when new extensions are registered.

While generally useful, this is also an issue with the in-process mode,
where the client code doesn't get the same kind of a head-start for
extension registration as it does remotely.
Only create extension widgets once we have the object base name.
Also handle the case that the base name is already available in the ctor.

In fact, always assume this now, since creation is now sufficiently
delayed. This makes the extension tabs work both remotely and in in-
process mode.
Make sure we initialize the factory before using it.

Usually this happens in response to dataChanged() from the server, but in
in-process mode we have the correct data right from the start.
Add missing Q_INTERFACES macros.

This fixes those objects being found correctly in in-process mode.
Register factories before creating the corresponding tabs.

Only worked by chance before, asserts now with the changes in how tabs
are created.