Introduce PersistentUnitCache.BackgroundService

Moved all async operations to it.

Separated out the operations that update the memory cache
from those that update the disk cache.

Refactored and commented the code that loads units from the
disk cache.

Improved tracing.

Change-Id: I170c80c717a6b224c526bd188f21ef83c4de8dc5