time: Add ability to specialize system and steady clocks

Default implementation is "optimized" to use boost::chrono clocks.  When
specialization is used, now() calls are redirected to the virtual
methods of the specified specialization.

This commit also includes an implementation of UnitTestClock that
can be used in unit tests to eliminate dependency on the wall clock.

Change-Id: I7ced774634d90ce32714a71e2a66129cba91b9ae
Refs: #2158
tests: Rewrite SecurityTestCertificateCache test to use UnitTestClock

Change-Id: I592af5f6a0c8df9c074eed60475ecf5f13fe1301
Refs: #2152