Rewrite DeviceOAuth2TokenService.

The old code handled asynchronous system salt loading in the factory
code, which made the Service a PITA to use. This change rewrites
DeviceOauth2TokenService to fold all asynchronous operations into
regular OAuth2TokenService implementation behavior, which is already
set up with Observers and callbacks already. Also, this change
improves the code to only perform validation once, even if there are
multiple concurrent token requests.

BUG=chromium:269455
TEST=Existing unit tests.
TBR=rogerta@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253453 0039d316-1c4b-4281-b951-d872f2087c98
[android_webview] Add test for getting a size after loading content.

This adds a test to check that the WebView applies the width it gets
from the Android view system to the layout size even if the load
happens before the size change notification.
This can happen if the application loads content at the same time
as the WebView is inserted into the view hierarchy.

BUG=344885

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

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