Reland "[FeatureList] Change GetApplicationLocale() in VariationsServiceClient to be a local function. [2/3]"

TThis is a reland of 08ae48ad56797b61f478f92dc243fc2dc09cccd3(r586711,
reverted in r588564).

The reland caches the locale value in VariationsFieldTrialCreator after calling
GetApplicationLocale() in the constructor. This is because GetApplicationLocale()
needs IO work and shouldn't be called on the UI thread. Besides, the locale
value won't change after the startup, so it is fine to cache its value.

Original change's description:

Before this function uses a pref in Chrome so we need to override it in Chrome
to access that pref value.

As a followup for this cl https://crrev.com/c/1135198,
now we can access the pref directly in componment/ and we no longer need to do that.

This CL comes from https://crrev.com/c/1140356. See previous discussion there.

Bug: 729596
Change-Id: I1519f80d393416b58cdb3fcd599fb15e0dd14280
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Reviewed-on: https://chromium-review.googlesource.com/c/1213308
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Michael Martis <martis@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596656}
22 files changed