Delay fetching account info until OnRefreshTokensLoaded().

Always fire OnRefreshTokensLoaded after token service is ready.
Previously this was only called if previously signed in.

Also fix a missing BCKS dependency of the SigninManager on the
AccountFetcherService.
This causes a cyclic dependency among:
AccountFetcherService - SigninManager - InvalidationProvider
Solution is to inject InvalidationService before it is used.

Added a Shutdown notification from InvalidationService to facilitate this.

This will resolve 2 issues:
1> Android OS uses email id whereas Chrome uses the GAIA id to identify
the account. This translation is only guaranteed to be available after
OnRefreshTokensLoaded(), which is required before fetching anything.
2> In case of changes to the account, force refreshing before
OnRefreshTokensLoaded() will result in stale values which are not
updated.

BUG=535211,525207

Review URL: https://codereview.chromium.org/1380103004

Cr-Commit-Position: refs/heads/master@{#356820}
16 files changed