[Sync] Avoid erroneous re-entrancy when model association times out.
This change fixes a bug where model association timeout can cause a
std::queue in DataTypeManagerImpl to be .pop()d when it's already empty.
See linked bug for more information.
Prior to this change, when model load is aborted (AbortModelLoad) the
model's ModelLoadCallback would be invoked. After this change, the
ModelLoadCallback will not be invoked when AbortModelLoad is called.
Update existing unit test so they no longer expect a call to
ModelLoadCallback when aborting.
Add CHECKs to DataTypeManagerImpl to ensure it never .pop()s an empty
stl::queue.
Add unit test to DataTypeManagerImpl to repro this bug.
BUG=419034
Review URL: https://codereview.chromium.org/
609223007
Cr-Commit-Position: refs/heads/master@{#297967}