Abstract TransactionTimeSampler to take a sampler and move the time proposal logic into PRoposedPurchaseTimeSampler