Add edm::Event parameter to SeedComparitor::init()

Needed to deliver edm::Event to LowPtClusterShapeSeedComparitor, so
that it can read pixel cluster cache from Event and deliver it to
ClusterShapeHitFilter (to be committed later).
Add edm::ConsumesCollector parameter to constructors of TrackerSeedGenerator classes

Will need to deliver edm::ConsumesCollector to OrderedHitsGenerator in
TSGFromOrderedHits and TSGSmart (to be added in later commit). It
follows that all classes inheriting from TrackerSeedGenerator must
have edm::ConsumesCollector parameter.
Add edm::ConsumesCollector parameter to SeedFilter constructor

Will need to deliver edm::ConsumesCollector to OrderedHitsGenerator in
SeedFilter (to be added in a later commit).

As a knock-on effect, move SeedFilter construction from beginRun() to
constructor in ElectronSeedProducer. Also, use std::unique_ptr for
SeedFilter.
Add edm::ConsumesCollector parameter to PixelTrackReconstruction

Will need to deliver edm::ConsumesCollector to OrderedHitsGenerator
(to be added in a later commit).
Add clone() method to HitTripletGeneratorFromPairAndLayers classes

Will be needed to be able to construct HitTripletGeneratorFromPairAndLayers
in a constructor in order to deliver edm::ConsumesCollector to
HitTripletGeneratorFromPairAndLayers, and to create new instances of a
prototype from non-constructor methods (to be committed later).
Add edm::ConsumesCollector to OrderedHitsGenerator constructors

Will be needed to deliver edm::ConsumesCollector to
HitTripletGeneratorFromPairAndLayers from
CombinedHitTripletGenerator (to be committed later).

Following classes inherit from OrderedHitsGenerator
- BeamHaloPairGenerator
- GenericPairGenerator
- GenericTripletGenerator
- CombinedHitPairGenerator
- CombinedMultiHitGenerator
- CombinedHitTripletGenerator

In CombinedHitTripletGenerator, move construction of
HitTripletGeneratorFromPairAndLayers from init() to constructor, use
HitTripletGeneratorFromPairAndLayers::clone() to create new instances
per SeedLayer in init() (HitTripletGeneratorFromPairAndLayers::clone()
is needed only for this).

Knock-on effects:

Pass ConsumesCollector to OrderedHitsFactory
- TSGSmart

+ move construction of OrderedHitsGenerator to constructor
- TSGFromL1Muon (from beginRun)
- PixelTrackReconstruction (from beginRun)
- HitTripletProducer (from init)
- CtfSpecialSeedGenerator (from beginRun)

+ move construction of SeedGeneratorFromRegionHits to constructor
- TSGFromOrderedHits
- EgammaHLTRegionalPixelSeedGeneratorProducers

+ move construction of SeedComparitor and SeedCreator to constructor
- SeedGeneratorFromRegionHitsEDProducer
Add edm::ConsumesCollector parameter to HitTripletGeneratorFromPairAndLayers constructor

Will need to deliver edm::ConsumesCollector to SeedComparitor in
PixelTripletHLTGenerator (to be added in later commit).

Inherit from HitTripletGeneratorFromPairAndLayers
- PixelTripletHLTGenerator
- PixelTripletLargeTipGenerator
- PixelTripletNoTipGenerator

CombinedHitTripletGenerator uses HitTripletGeneratorFromPairAndLayersFactory.
Add edm::ConsumesCollector to SeedForPhotonConversionFromQuadruplets constructor

Will need to deliver edm::ConsumesCollector to SeedComparitor
constructor (to be added in a later commit).

Knock-on effects in SeedForPhotonConversionFromQuadruplets
- move construction of SeedComparitor from trajectorySeed() to constructor

Knock-on effects in PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo
- move construction of SeedForPhotonConversionFromQuadruplets from
  trajectorySeed() to constructor
Add edm::ConsumesCollector to SeedComparitor constructor

Will need to read pixel cluster shape cache from edm::Event in
LowPtClusterShapeSeedComparitor and PixelClusterShapeSeedComparitor in
order to pass the cache object to ClusterShapeHitFilter (to be added
later).
Add edm::ConsumesCollector to constructors of PixelTrackFilter classes

Will need to read pixel cluster shape cache from edm::Event in
ClusterShapeTrackFilter in order to pass the object to
ClusterShapeHitFilter (to be added in a later commit).
Add SiPixelClusterShapeCache data format
Overload ClusterShape::determineShape() to accept also SiPixelCluster
Add SiPixelClusterShapeCacheProducer
Add dictionaries for SiPixelClusterShapeCache
Use SiPixelClusterShapeCache in ClusterShapeHitFilter
Add cluster shape cache producer and consumers to configuration