Improve the ProfileInfoCache API.

This change introduces a new API to the ProfileInfoCache and implements
it in terms of the current ProfileInfoCache, along with unit tests.

This is the first step in addressing the API issues the ProfileInfoCache
exhibits, with upcoming follow up CLs replacing the current uses with
this new interface and ultimately improving the implementation as well.

A document detailing the design and discussion around this effort can be
found here:
https://docs.google.com/a/google.com/document/d/12V8ahA9lEsXWyT8OqasEz3HR4J5jK9hwbRTeU0hUm6Y/edit?usp=sharing

BUG=305720

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

Cr-Commit-Position: refs/heads/master@{#338513}
9 files changed