Removed the need for a non-const static in UserData.

Moved the calculation of the name demangling to a static function of the base class. This allowed the removal of a non-const static and avoided having to create that code for each template type. The const static name only needs call that function once per job. This will avoid a potential thread-safety issue.
Changed a non-const function static to a const class static in AcceptAllFilter

The class AcceptAllFilter has a method singleton method 'get' which was creating a non-const function static and returning it a const. This was replaced with a const class static so that the compiler didn't have to create code in each calling file for the function static. This avoids having the static analyzer produce a thread-safety complaint.
Made caching thread-safe in pat::MET

Used std::atomic<*> to manage a thread safe cache of information. This dropped a transient data member so classes_def_objects.xml file had to be changed.
Made pat::Tau and pat::Jet thread-safe

Changed caches to be of type edm::AtomicPtrCache<> to avoid thread safety issues.
Fixed typo in operator* which was never called before

The non-const version of operator* was missing a ‘*’ and was not caught since it had not been called.
Updated the unit test so it tests all the functions, both const and non-const.
Work around problem with ROOT when using a transient edm::AtomicPtrCache

ROOT 5 complains about ROOT iorules for edm::AtomicPtrCache even though it is a transient data member. I spoke with Philippe Canal and he said it is a deficiency of Cintex and will not be in ROOT 6. This is a work around until we move to ROOT 6.
Merge pull request #1388 from Dr15Jones/threadSafeFixesDataFormatsPatCandidates

Multithreading fixes -- Thread safe fixes DataFormats/PatCandidates