ZEN-7131: Fixes for ExponentiallyDecayingSample

1) Replace RBTree with heapq:
   Should be more efficient, eliminates external library dependency

2) Ensure rescale is called: 
   Without the rescale, all samples after ~13 hours get the same priority (MAX_FLT) and sample is no longer exponentially decaying
   
3) Set rescale_threshold based on alpha
   The period at which the sample priorities overflow is dependent on the decay alpha.  Set the rescale_threshold based on the alpha such that we will rescale the samples before we overflow.

4) Various unit tests