Deterministic Annealing Filter for track reconstruction

This branch add the possibility to use DAF in track reconstruction procedure.
In general, DAF is an iterated Kalman Filter that assigns a weight to every competing hit. The wrong hit assignment to the track is avoided introducing an annealing factor which changes iteration by iteration.
Thanks to these features, DAF is particularly suited for noisy environments, where the electronic noise or pile up effects can not be neglected.

The basic components are:
- SiTrackerMultiRecHit: This is a TackingRecHit with virtual position and virtual covariance matrix built in order to incorporate several competing hits.
- MultiRecHitCollector: which build the SiTrackerMultiRecHit collecting hits with the same IdDet (Simple one).
- SiTrackerMultiRecHitUpdator: which builds the SiTrackerMultiRecHit or updates an existing one.
- MRHChi2MeasurementEstimator: it performs the chi2 estimate.

here and in many more places in the function arguments, better use ```const TrajectoryStateOnSurface& tsos```