Fix DecayingSample treatment of the window
Template abstract_clock on Clock:
The abstract_clock is now templated on a type meeting the requirements of
the Clock concept. It inherits the nested types of the Clock on which it
is based. This resolves a problem with the original design which broke the
type-safety of time_point from different abstract clocks.
[FOLD] compile
[FOLD] fix assert
[FOLD] review comments
[FOLD] fix manual_clock treatment of increment
[FOLD] comments
[FOLD] tidy up set()
[FOLD] Add manual_clock::advance