Pf2 stream

Solves several potential "race conditions" in code related to HCAL, Jet and Tau.
Introduces more const-correctness
convert to stream several producers (notably Jet, TauDiscriminators and PFRecHits)

The original logic and implementation are always preserved.
Minor modifications to ensure const-correctness in tau-discriminators where the method
"discriminate" has been made constant to ease const-correctness tracking


No regression expected, no regression observed even running with 4 threads.

Now reco (with no output) is 85% efficient with 6 threads and 70% efficient with 12 threads

Because of reading of MVA from files the number of opened file descriptors may easily grow beyond single user limit when running with many threads
This should disappear when MVA will be read from the DB.


In all these Producers memory usage (and more in general usage of common resources) can be optimized using GlobalContexts and RunCaches
hm, interesting - this algorithm was abandoned before I joined CMS and I never spent much time studying its details. Perhaps @veelken can comment whether this return value was intentional. I can only add that this algorithm is never executed during RECO sequence and the code is kept only for legacy reasons. So resolution of this bug should in no way delay approval of this PR.