Major JME developments for 73x, Redux

Rebase of #6273. Copy-and-pasting the text of that PR : 

This PR contains a large number of JME developments for 73x :

Updates to use new fastjet 3.1.0 (cms-externals/fastjet#8)
Updates to new API for n-subjettiness for fastjet-contrib 1.014 (cms-externals/fastjet-contrib#2)
Added changes to PUPPI from the code review here (#5500)
Added several new tools, none of which are to be executed in RECO until further notice :
Constituent subtraction
SoftKiller
SoftDrop
PUPPI
Two notes :

There is a new package, CommonTools/PileupModules. It would aid development to have these separate from CommonTools/ParticleFlow (which is focused on the "top projection" code).
The current output is set up as an intermediate stage where PFCandidates are produced along with a valueMap of four vectors. This is a stand-in until I make a migration to the ThinnedCollection, but this is better treated together rather than piecemeal.

Also adding @violatingcp and @nhanvtran to watch this.
I'm confused: there is code above that treats hPFProduct as either PackedCandidate or as PFCandidate (it's actually the second choice there).
And here it's an exception if it's not a PFCandidate.
What's happening?