Ok, what we've done now and we're pushing to this pull request is:
1) make the PAT object classes friends of their slimmer modules (this fixes already everything Jets, Muons, Taus; MET didn't even need the define private public, so we just removed it)
2) add additional setters in the reco base classes to make the slimmers of Electrons and GenJets working (without having to make the reco base class friend of the PAT slimmer, that would be bad)
 - reco::GenJet (DF/JetReco): added a function to set the Specific information
 - reco::GsfElectron (DF/EgammaCandidates): added setters for TrackExtrapolations, ShowerShape, Corrections

With these two, we don't need any #define private public or similar in the slimmers anymore.