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
considering the implementation, this should be a const reference and also inlined
``` const std::vector<reco::PUSubMETCandInfo> getCleanedJets() const {return __cleanedJets; } ```