mc146818a: be less clever in computing next period timeout
Most likely through evolution, the code programs the next period based on the
last period which effectively gives it a default behavior of
DRIFT_REINJECT_FAST. That said, this behavior is subtle and the code reads like
it actually implements DRIFT_DROP because current_time doesn't always refer to
the current time.
Refactor to make this more obvious and subsequently simplify in the process.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>