Multithreading improvements in JetTagComputer

Replace the const JetTagComputer::setEventSetup function
with a non-const initialize function, because setEventSetup
actually modified the data of the EventSetup product.
Previously the function had to be explicitly called
by the JetTagProducer using a const reference and now
the new function is called by the ESProducer.

JetTagComputerRecord is now dependent on
BTauGenericMVAJetTagComputerRcd and the calibrations
are obtained through this dependence. This manages
the IOVs properly also.

Remove the passEventSetup function which could not
have ever been called by anything in the release.
GenericMVAJetTagComputer::computers is no longer mutable.
GenericMVAComputer::mapping is now a const static member.
GenericMVAJetTagComputer::computerCache
is no longer mutable. JetTagComputer::m_setupDone is
no longer mutable.  JetTagProducer no longer has m_computer
as a data member as that was an EventSetup product.
The const_cast in CombinedMVAJetTagComputer::setEventSetup
is removed.

GenericMVAComputerCache now delays throwing an exception
when a calibration is missing until its getComputer function
is called. This is necessary because some ESProducers
are called by the hltConditions module even though they
are never actually used and it is OK that their calibrations
are missing. The function initialize is now
always called during the EventSetup get function call
whereas previously setEventSetup had to be explicitly
called by the module using the EventSetup product.
Merge pull request #3548 from wddgit/threadSafetyJetTagComputer

Reco -- Multithreading improvements in JetTagComputer