porting changes into new branch
Re-added old files to make for a cleaner PR for now.
fixed unit tests with proper floating-point comparison
cleanup of fabs -> std::abs
Minor fixes for DQM classes.

A few months ago I did a simple test to test whether
having a huge library for all the DQM packages (instead of
.so per package) yield any performance results.

It did not.

However, I had to do some cleanup of the code in order to link it
correctly (mostly duplicate symbols):

1. L1TMenuHelper*.cc got de-duplicated;
2. add a proper headers, instead of including .cc (yeah, i know, crazy);
3. adding a few "static" keywords.
Add const to a few arrays.

Because we can!
Replace std::map::at with check if an element exists + at.

Previously it was done via operator[] (yes, indeed),
but this creates an entry and is no longer
possible (map is immutable).
Let the cms::JetCorrectionProducer use reco::JetCorrectors.
Create sequences for the input to the ChainedJetCorrectorProducer.
Remove obsolete member variable.
Remove obsolete #include.
Migrate Type1PFMET to use reco::JetCorrector.
Migrate some demos.
Migrate tau example.
Migration to DQMEDAnalyzer and DQMEDHarvester for multithreaded framework.
Migration to DQMEDAnalyzer and DQMEDHarvester for multithreaded framework.
Migrate the PAT and related stuff to use reco::JetCorrector.
split BeamCurrentInfo off from LumiInfo
Move new version of JetCorrectionProducer to CorrectedJetProducer (also better name) and restore old version to avoid conflicts with non-AT packages (sterile solution).
Resolve missing gmigration to Validation/RecoMET in order to let the short matrix WFs succeed.