Remove ExecutionContext::CreateFetchClientSettingsObjectSnapshot()

Previously, there are two kinds of FetchClientSettingsObject instances
that originate from the same ExecutionContext but are
created via different, duplicated code paths:

[1] FetchClientSettingsObjectImpl and
[2] FetchClientSettingsObjectSnapshot created by
    ExecutionContext::CreateFetchClientSettingsObjectSnapshot().

To simplify the data flow this CL replaces [2] with:

[3] FetchClientSettingsObjectSnapshot created from [1] by
    a newly added FetchClientSettingsObjectSnapshot copy-ish constructor.

After this CL, it is easier to add logic to
FetchClientSettingsObjectImpl methods, as its return values are
propagated to FetchClientSettingsObjectSnapshot, without adding the
same logic to CreateFetchClientSettingsObjectSnapshot().
(For example https://chromium-review.googlesource.com/1351929).

Bug: 880027
Change-Id: I207ef34dd44923bccb0d0813bb71ac72a0b15066
Reviewed-on: https://chromium-review.googlesource.com/c/1352972
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613882}
9 files changed