use One-Definition Rule to share same instance of module factory registry

Verified on Mac OS X 10.9.1 + clang-500.2.79 and RHEL 6.4 + GCC 4.4.7,
multiple instances of template function getModuleFactoryRegistry exist
in multiple C++ translation units, but at runtime all translation units
use same instance.

Notice gcc option "-rdynamic" is required if getModuleFactoryRegistry
is instantiated in executable file.