pull from bertrand
more realistic case
different implementation
new version based on templates instead of macros
minor fix in comment
modified to use genreflex instead of rootcint
added exception for missing factory
removed redundant indirection layer
ROOT-free version (no auto loading)
reorganized the code

- added the namespace and the include directory Gaudi
- separated the public header from the internal details
stub for an auto loading mechanism
added a small application to dump the list of factories per lib

The application 'listfactories' take a list of libraries on the command
line and reports the factories in each of them in the format

    library:factory

one factory per line.
use the extension .cpp for C++ sources (Gaudi conventions)
rewritten the mechanism to locate and load factories
added code to get the list of factories from *.components files

At construction, the plugin service registry looks for all the
*.components file in the LD_LIBRARY_PATH and fills the internal cache.
use the term "components" instead of "factories"
added licence and copyright notice
Merge branch 'master' into testing