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.

Reviewers: @howardhinnant, @scottschurr 
Info:  This code was written several years ago (when I was still at Apple) and was intended to be an example implementation of a standards proposal that never materialized.  That's how the underscores got in there (it was meant to be a std::lib implementation).