Use SiPixelClusterShapeCache in ClusterShapeHitFilter
Add cluster shape cache producer and consumers to configuration
Add edm::VecArray
Use edm::VecArray in ClusterData and ClusterShapeHitFilter

To reduce the amount of dynamic memory allocations.
Optimize SiPixelClusterShapeCache for time and space

Based on tests on standalone test program.
Optimize SiPixelClusterShapeCache for space

There is a timing hit from the bitfields, but hopefully it gets hidden
by semi-random access and other overheads in the calling code.
Add SiPixelClusterShapeCache::swap()
Remove edm::EventSetup argument from TransientInitialStateEstimator constructor

Better to construct it in the constructor of
CkfTrackCandidateMakerBase in order to not to need to have
edm::ParameterSet member.
TransientInitialStateEstimator::setEventSetup() is anyway called on each
event.

Transform ConversionTrackFinder and deriving classes similarly as a
knock-on.
Remove CkfTrackCandidataMakerBase::conf_ member
Remove ConversionTrackFinder::conf_ member
Move construction of SeedComparitor from mergeTriplets to constructor in QuadrupletSeedMerger
Remove SeedGeneratorFromRegionHitsEDProducer::theConfig member
Convert raw pointer members of SeedGeneratorFromRegionHitsEDProducer to std::unique_ptr
Remove empty beginRun() and endRun() from SeedGeneratorFromRegionHitsEDProducer
Cleanup of PhotonConversionTrajectorySeedProducerFromQuadruplets(Algo)
Change edm::VecArray::push_back() to throw if it is full

I think this is more in line what one would expect from something with
vector-like interface compared to undefined behaviour. In case a check
on sizes is done before a loop, there is now push_back_unchecked()
that does not incur the small performance penalty of the comparison.
Cleanup on PhotonConversionTrajectorySeedProducerFromSingleLeg(Algo)
Reduce repeated memory allocations in ClusterShape::determineShape()
Micro-optimizing ClusterShape.cc
Add option to calculate pixel cluster shape data on demand