Use an ordered datastructure in ExponentiallyDecayingSample

Use an ordred datastructure to ensure that First always return the mesure
with the smallest priority