MiniAOD extension for quark-gluon tagger

The QGTagger.cc plugin is updated to work also on pat::Jets and pat::PackedCandidate.
The QGTagger class is now a templated QGTagger<jetClass>, so that instead of the original QGTagger plugin, we have a QGTaggerPFJets and a QGTaggerPatJets defined.
The updated cfi fragment shows how it can be used in different situations.
The code is also a bit cleaned up to be more readable.
the need to cast to a particular type better be controlled by a config parameter.
In all of the cases here the type of the object can be known at the config stage.

This code pattern to handle vertex association repeats in quite a few places in CMSSW already.
We'll need to see if a more appropriate resolution can be found.