add ITrackFunctor in order to be able to deprecate the use of
ITrackManipulator -- ITrackFunctor just computes some observable
(which has a float value) and returns it instead of modifying the
track it is given
Make TrackLikelihood inherit from ITrackFunctor instead of
ITrackManipulator, and make it const-correct
TrackAddLikelihood now calls ITrackFunctor to obtain values,
and then it forwards those value to Track::setLikelihood