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
what was it about "set" const methods to be avoided.
Is this case special and it's more appropriate to have a const "set" ?