Copy recent changes in periodic tasks from nova.

The nova periodic task code has moved on. Bring oslo inline with
the new code. The next step after this is to update Quantum (the
only user of this code I can find) to the new interface, and then
move nova across to using this code.

Change-Id: I3f041ca9a6ba9f0e5be4b29198d16454c9797fef