Merge M51: Prefer System Flash over non-local component updated Flash.

This avoids attempting to load a Flash DLL off a network drive if doing
so would not result in loading an old version of Flash.

When determining which Flash to load the following algorithm is evaluated:

First, a candidate list of Flash versions is compiled sourced from:

 - System Flash (Adobe updated) - (could be the debug version)
 - Bundled Flash (ships with Chrome)
 - Component updated Flash (updated on user data dir by component updater)*

* Note this really only applies on Linux when the component updated Flash
is already available at Chrome startup.

The highest single version will always win. If so, just use that version.

If there are two or more available version of Flash with the same version
then preference is given in the following order

 - Flash content Debugger
 - Bundled Flash
 - Local-drive Component updated Flash
 - System Flash
 - Network-mounted component updated Flash

Because of the way that the pepperflash component updater injects its
version of Flash later on in Chrome load, the network drive determination
is done in two places, firstly inside ChromeContentClient when building
a candidate list, since Linux could have a component updated flash
ready for use at this point, and secondly when the pepperflash component
comes to inject the new version it will evalulate the order based on
the rule above on whether to inject itself.

TEST=https://docs.google.com/document/d/1iTQiaqjuHsKV4cPqSOet-eJKWb2SsJLp2ieDj_Mul4s/preview
TEST=unit_tests --gtest_filter=ChromeContentClientTest.*
BUG=572131

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

Cr-Commit-Position: refs/heads/master@{#389006}
(cherry picked from commit 73d6faae235add2deebf2a634f0cd0939751a946)

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

Cr-Commit-Position: refs/branch-heads/2704@{#235}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}
8 files changed