Use timeutils functions instead of misc.wallclock

The common oslo timeutils functions can perform the
same time methods using the better datetime objects than
using the raw unix timestamps directly, so in order to
reduce a little bit of code just use the functions that
module provides instead of our own.

Also adds a few more tests that validate the various runtime
errors being thrown to ensure they are thrown when expected
and handles the case where time goes backwards (say when ntpd
updates) in a more reliable manner (by not becoming negative).

Change-Id: I6153ff8379833844105545ddb21dede65a7d4d3a
Merge "Use timeutils functions instead of misc.wallclock"