Removed use of static for temporary variable in TauA1NuConstrainedFitter

The threaded framework was failing becuase multiple DQM modules were calling
TauA1NuConstrainedFitter at the same time and the class was using a static
to hold temporary data. I changed the code so now one passes the value as an
argument of the function which uses the value. This also required changed
ErrorMatrixPropagator which was formerly taking a pointer to a function but
now sometimes the function being called needed an additional argument. Changing
ErrorMatrixPropagator to use a std::function<> instead of a pointer to a function
as the argument fixed that problem.
Added refToPSet_ ability in python PSet

The python PSet class is now capable of containing a lazy evaluated reference to a PSet at the highest level of the Process. This is done by using a parameter named refToPSet_ which takes a cms.string with the label of the top level PSet to which one wants to reference. The reference does not happen until we convert the python PSet into the C++ ParameterSet. At that time a copy to the reference is used to create the C++ ParameterSet.
Mark PluginManager statics as thread safe

The singletons for the plugin system are required to be initialized before any threads are started, therefore the statics which hold those singletons are thread safe. This commit used the cms attribute to mark these as safe so we do not get a false positive from the static analyzer.
Merge pull request #3107 from Dr15Jones/markPluginManagerStaticsAsThreadSafe

Multithreading -- Mark PluginManager statics as thread safe
Merge pull request #3072 from Dr15Jones/addRefToPSet_

FWCore/ParameterSet -- Added refToPSet_ ability in python PSet
Merge pull request #3062 from Dr15Jones/removeStaticFromTauA1NuConstrainedFitter

RecoTauTag/ImpactParameter -- Removed use of static for temporary variable in TauA1NuConstrainedFitter
Merge remote branch 'origin/CMSSW_7_1_X' into CMSSW_7_0_X