Introduces a TestLoaderManager to test loaders.

Currently, the ContactDeletionInterationTest are flaky because waiting
for one of the loader to complete will fail if the loader was completed
before we start waiting.

Since this happens asynchronously and we do not information of which
loaders have completed, there is not an easy way to know whether the
loader already completed or never started.

This change introduces a TestLoaderManager which is an implementation of
LoaderManager which delegates to another object, but keeps track of
which loaders have completed. This allows to correctly wait for Loaders
to complete, even if they might have completed before the call to
waitForLoaders takes place.

Change-Id: I5e3795e10fc9b3424b983cdef4ac32feed7dbf74
5 files changed