Strip down BrowserContextImpl / OTRBrowserContextImpl by introducing 2 new structs for data members shared between a BrowserContext pair (BrowserContextSharedData and BrowserContextSharedIOData), which allows us to drop all of the virtual methods that proxy calls between the 2 BrowserContexts