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'm not really an expert but if
```xml
<class name="reco::SoftLeptonTag::LeptonMap"/>
```
is used instead of
```xml
<class name="reco::TemplatedSoftLeptonTagInfo<edm::RefToBase<reco::Track> >::LeptonMap"/>
```
the code will fail to compile
```
--->> genreflex: WARNING: Class reco::SoftLeptonTag::LeptonMap in selection file src/DataFormats/BTauReco/src/classes_def.xml not generated.
--->> genreflex: ERROR: Exiting with error due to 1 warnings ( --fail_on_warnings enabled )
gmake: *** [tmp/slc6_amd64_gcc481/src/DataFormats/BTauReco/src/DataFormatsBTauReco/a/xr.cc] Error 1
```
This is something we learned when SecondaryVertexTagInfo was templated and we had to use the same trick for the `VertexData` member class.