Integration of MvaMET code and tools for miniAOD, cleaning of RecoMET/METPUSubtraction package

This PR modifies the mva mitigated MET code in order to make it able to run in top of miniAODs. Cleaning and restructuration of the associated code is also done.

Packages involved :
-DataFormats/METReco : auxiliary structure for the pileup mitigated MET algorithm restructuresd for a common approach
- RecoJets/JetProducers : pileup mva jet id now able to work in top of miniAOD, mandatory for the mva MET
- RecoMET/METPUSubtraction : rewriting of the NoPU and Mva MET code -> clarity and structure improved, mvaMET able to work in top of miniAOD. NoPU will not due to the limited information available on miniAOD, and it is not planned to go further in that direction.

Changes expected : 
- reco sequence : no change expected so far, plugin of default mva/nopu algorithm at the RECO/AOD or miniAOD level for a next PR
- event content : transparent
- difference between the mva MET at AOD and miniAOD level : 1% of events slightly different due to the difference of pfCandidate-vertex matching between both format
- difference between previous version and new version : slight difference of the mvaMET results compared to the current version in the release, due to how JEC are handled in the pileup Jet Id mva algorithm for the mvaMET (before was internal, now pileup Jet ID mva is independent, and in sync with other use of the pileup mva jet id)

matrix tests are successfull
use the Ref only where the collection provenance is really needed, otherwise use the jet directly 
```C++
auto corrJet = corrJets->begin();
for (size_t cjIdx=0; cjIdx<corrJets->size(); ++cjIdx, ++corrJet){
 reco::PFJetRef corrJetRef( corrJets, cjIdx );//use only when getting stuff from the value map below

```