Integration of MVA/NoPU MET in central release

This PR contains the MVA and NoPU code the JetMET group wants to make available centrally, and eventually computed at the RECO and miniAOD level after discussion with the RECO/AT group.

This PR add the package RecoMET/METPUSubtraction, and add the pat configuration files needed for the MET uncertainty tool.
Several fixes and cleaning are also done on the patCaloMET configuration, the pileupjetid configuration, the pileupJetid training needed by the MVA and NoPU MET.

Automatically ported from CMSSW_7_2_X #5188
I did mention std::abs few times. We use it to avoid some possible incompatibilities and we want to have the abs conversions applied in the same way in the whole code. You choose not to use it but instead continue with fabs/abs - not guaranteed the same library is used for the two (and may depend on which includes are already used; and which compiler...) and you have to be careful to use it with the right types. I see only potential problems here for no gain (strictly speaking fabs/abs is C oriented inside the C++ code).