Add header to defer redirects until prerenders become visible.

This adds a Follow-Only-When-Prerender-Shown header which, when attached to an
HTTP redirect, defers the redirect until the page is visible. In some
situations, namely if attached to a main page load or a synchronous request,
the prerender is aborted instead. (In the former case, the navigation entry is
uncommitted, so the prerender is useless. In the latter, we indefinitely hang
up the renderer process, preventing reuse in other tabs.)

BUG=292879
TEST=PrerenderBrowserTest.PrerenderDeferredImage,
     PrerenderBrowserTest.PrerenderDeferredImageAfterRedirect,
     PrerenderBrowserTest.PrerenderDeferredMainFrame,
     PrerenderBrowserTest.PrerenderDeferredMainFrameAfterRedirect,
     PrerenderBrowserTest.PrerenderDeferredSynchronousXHR,
     PrerenderTrackerTest.PrerenderThrottledRedirectResume,
     PrerenderTrackerTest.PrerenderThrottledRedirectCancel,
     PrerenderTrackerTest.PrerenderThrottledRedirectMainFrame,
     PrerenderTrackerTest.PrerenderThrottledRedirectSyncXHR

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226290 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 226290