customtabs: Pre-create a renderer in mayLaunchUrl().

When the client application indicates that it is likely to navigate to a
URL, we either pre-render it, or starting with this CL, pre-create a
renderer.

Renderer creation is relatively slow on Android, and even when a bound
service is already there, additional initialization is necessary to get
a usable renderer.

This commit makes the "spare" renderer navigate to about:blank, to force
a complete initialization of it. Testing on a Nexus 5 with Android 5.1.1
has shown ~200ms improvement with this change for the time to navigation
commit.

Most of the patch is plumbing to make sure that the "about:blank"
navigation doesn't get registered, so that a back navigation in a Custom
Tab doesn't go to about:blank.

BUG=511280

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

Cr-Commit-Position: refs/heads/master@{#344480}
10 files changed