Make history registry non-singleton and also fix read calls to not use p...

Two different changes to the framework to support multithreading are being submitted together because they touch some of the same lines of code:

Change 1:
Functions that read a run, lumi, or an event principal fill in the principal that is passed in by reference. These functions no longer create the principal. Therefore, there is no need for them to return a pointer to the principal.
With this pull request, these functions now return void or bool, as appropriate.  Furthermore, the functions that read a run or lumi principal were passed a shared pointer for filling. As this is no longer needed, we now pass references instead.  Also, the functions readAndCacheRun and readAndCacheLumi were modified to fill in the principal rather than creating it, and were renamed readRun and readLuminosityBlock respectively, because the caching of the principal has been moved outside these functions.

Change 2:
The process history registry is redone so that it is no longer a singleton instance of the ThreadSafeRegistry template.  It is now a separate class, and the primary input source, each secondary input sources, and each ROOT/EDM output module now each has its own instance of this registry.

This pull request contains and supersedes #641, which is being closed.