Pseudo top producer

Pseudo top producer is added.

This module is compatible with MINIAOD's packedGenParticles+prunedGenParticles.
Output are : 
  * InputTag("pseudoTop") : pseudo top (and its decay products) in reco::GenParticle format.
  * InputTag("pseudoTop", "partons") : simplified partonic top (and also its decay products) in reco::GenParticle format.
  * InputTag("pseudoTop", "neutrinos") : all neutrinos used in pseudoTop combination
  * InputTag("pseudoTop", "leptons") : all leptons used in pseudoTop cobination in reco::GenJet format
  * InputTag("pseudoTop", "jets") : all jets used in pseudoTop combinationin reco::GenJet format. pdgId is set to 5 if B-tagged.

Pseudo top is a "particle level" top quark, reconstructed only with particle level objects in generator record.
- (Dressed) Leptons : anti-kt(0.1) jets with stable lepton in the constituents. Uses leptons and photons from W decay, vetoed hadrons. Takes leading pT lepton to fill lepton flavour. The primary lepton must take at least 50% of total momentum.
- Jets : anti-kt(0.5) jets with reminders of lepton clustering. Added ghost B-hadrons during the clustering to do generator level B tagging. 
- pseudo-W : lepton + neutrino pair with |m(l+vl) - mW| is minimum. In addition to the standard definition, lepton and neutrinos are selected to match flavour (no e-nu_mu pairing). For the lepton-jet channel, dijets are added to pseudo-W.
- pseudo-top : pseudoW + bjet with similar condition in pseudo-W. For the dilepton channel, opposite sign is required.

Particle decay modes are selected using the parton level information.
This is necessary to avoid ambiguity due to acceptance of particle level objects. 
(I think it is not physical to consider fake semileptonic events which are actually from dilepton channel.)