Template abstract_clock on Clock:

Sorry for the mixup, there was a bug in DecayingSample! The changes will need to be audited carefully. Unit tests pass now.

Reviewers: @scottschurr @rec 
What's `rep`?  I understand that that's the original name, but perhaps for documentation a longer name is needed... `representation`?