Periodic task for offloading shelved instances

Adds a periodic task which removes a shelved instance from a hypervisor
if it has been shelved > CONF.shelved_offload_time seconds.

CONF.shelved_offload_time can also be set to -1 to mean never offload,
and 0 to mean offload immediately when shelved.

Setting a >0 shelved_offload_time means that hypervisor resources will
still be in used until the periodic task offloads them.  So capacity is
not reduced, but unshelving times may be decreased.

Offloading immediately means that capacity becomes available quickly,
but may increase unshelving times if the instance is not volume backed
and its snapshot takes a long time to transfer.

DocImpact
Part of bp shelve-instance

Change-Id: I49ee53709270aa25de76d58666c250537f6a0314
Merge "Periodic task for offloading shelved instances"