DecayingSample takes time_point in ctor and uses time_point

Address JIRA RIPD-395

Switches a number of places in Resource::Logic to use abstract_clock::now()
which returns a time_point.  Unfortunately Resource::Logic tracks time
locally also, but with ints, not time_point.  So Resource::Logic uses a
delicate mix of abstract_clock::now() and abstract_clock::elapsed() with
this commit.  That inconsistency could be addressed in a second commit.
I put in the asserts based on two clues:

 1. There are a total of four places where the Key is constructed.  They all followed the rules imposed here.
 2. The key_equal() method also follows these rules.