settings: Make DeviceOAuth2TokenServiceFactory::Get() async

This is in preparation for fixing nasty D-Bus method call issues in
DeviceOAuth2TokenService.

In crrev.com/228189, we had to add horrible hacks to workaround an urgent
P1 issue, which needed to be merged to M31 branch immediately.
The root cause of this problem is the fact that DeviceOAuth2TokenService
issues D-Bus method calls, which should be asynchronous, from places
where doing it asynchronously is difficult (in particular, making
GetRefreshToken() asynchronous is very difficult: crbug.com/309952).

A simpler solution for this problem is to get the system salt before
creating DeviceOAuth2TokenService, hence Get() should be asynchronous.

BUG=309959,306547
TEST=none
R=courage@chromium.org, hashimoto@chromium.org, pastarmovj@chromium.org, pneubeck@chromium.org, xiyuan@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230624 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 230624