Muon Selectors for legacy 53X

1- I introduced in DataFormats/MuonReco/interface/MuonCocktails.h a couple of function to check the validity of the inputs to the tuneP algo.

2- I added muonBestTrack(const reco::Muon& muon, reco::TunePType tunePType); in MuonCocktails.h/cc. The implementation simulate what is actually done in MuonIdProducer. T

3- I moved the tuneP enumerator in MuonFwd.h (this will make a lot CMSSW package to recompile... though it is a trivial change

4- I removed improvedMuonBestTrack(const reco::Muon&, TunePType); from MuonSelector.h and in the same file I also removed the default for isHighPtMuon(const reco::Muon&, const reco::Vertex&, reco::TunePType);

5- I modified pat::Muon.h/c to add:
    a) a new muonBestTrack(); method 
    b) reco::TrackRef improvedMuonBestTrack();
    c) MuonTrackType improvedMuonBestTrackType() and void setImprovedBestTrack(MuonTrackType muonType)
        cbis) improvedMuonBestTrackType_ has been added as datamember
    d) void embedImprovedMuonBestTrack(); and whatever is needed to make the embedding
    e) isLooseMuon(), isSoftMuon(), isHighPtMuon() to call the implementation in MuonSelctor.h
    f) the class version of Muon.h for pat is now 14 instead of 12

6- In PATMuonProducer.h and PhysicsTools/PatAlgos/python/producersLayer1/muonProducer_cfi.py I intruduced the possibility to embed the improved Muon best track. Default is set to true

7- In PATMuonProducer.cc I changed it to use the muonBestTrack properly. It was already protected, because I put a protection in the past. Now, however, it has an implementation that support STA-only muons too. The default here is the *default* muonBestTrack (as it was till now). Note that in this part of the code the best track is used to calculate IP values.

8- In RecoMuon/MuonIdentification/plugins/MuonIdProducer.cc I put back the fix that exited the 53X releases.
https://hypernews.cern.ch/HyperNews/CMS/get/pkgAnnounce/135377.html