Templated SoftLeptonTagInfo + PAT support for CandSoftLeptonTagInfo

SoftLeptonTagInfo has been templated to support candidate-based SoftLeptonTagInfo. This will allow the existing soft lepton taggers to fully support MiniAOD. The PAT support for CandSoftLeptonTagInfo has also been included.

The code changes implemented in this PR should be completely transparent to the standard reconstruction. The attached plots show the performance of the existing soft muon and soft electron taggers before and after the changes.

**SET (soft electron tagger)**
![performance_set](https://cloud.githubusercontent.com/assets/4885289/5050709/78012912-6bfe-11e4-9a8f-39df28863751.png)

**SMT (soft muon tagger)**
![performance_smt](https://cloud.githubusercontent.com/assets/4885289/5050712/7fbc57a8-6bfe-11e4-8675-05036abdac6a.png)

I think this is explained in https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideCreatingNewProducts#Create_a_classes_def_xml_in_the where it is stated "If the class is an instance of a template, the values of all template parameters, including defaulted parameters, must be fully specified."

I should have also mentioned that we still have class versions. They are just implemented in a different way by adding
```C++
#include "DataFormats/Common/interface/CMS_CLASS_VERSION.h"
```
and
```C++
CMS_CLASS_VERSION(11)
```
in the definition of the templated class.