Reland "RC: Encapsulate most of the singletons into ResourceCoordinatorParts"

This is a reland of 14754da5c731fc8af079e5195209840492540e4d with some
fixes (see the ps #1..#2 diff).

The problem in the previous CL was that the LocalDB WCObserver was
sometime created despite not having a PageSignalReceiver, this caused
some access violation because this WCO relies on some signal sent by the
PSR. I've added a check to prevent creating this WCO when the PSR isn't
available (and fixed some tests to make them create one).

// Confirmed with sky@ that he's ok with me relanding this without his
// +1 as none of the files he owns have changed.
[email protected]

Original change's description:
> RC: Encapsulate most of the singletons into ResourceCoordinatorParts
>
> There's several singletons / global instances in c/b/rc that are leaked
> at shutdown, this is causing some issues in runs of unit_tests because
> we end up re-using them between different test runs that should be
> independent. This is currently preventing some feature to be enabled.
>
> This CL add a new ResourceCoordinatorParts class that encapsulate all
> these objects that should be created only once, an instance of this
> class is owned by the browser process.
>
> Change-Id: Ia64618b6f47052815d861ff6820d994f8a65cc64
> Reviewed-on: https://chromium-review.googlesource.com/c/1290775
> Reviewed-by: Scott Violet <[email protected]>
> Reviewed-by: Chris Hamilton <[email protected]>
> Reviewed-by: François Doray <[email protected]>
> Commit-Queue: Sébastien Marchand <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#606061}

Change-Id: I71feb4ea233d02cb5cc001c12e3cdd7f6ddd795b
Reviewed-on: https://chromium-review.googlesource.com/c/1324134
Commit-Queue: Sébastien Marchand <[email protected]>
Reviewed-by: François Doray <[email protected]>
Cr-Commit-Position: refs/heads/master@{#606548}
36 files changed