First step in enabling creating tabs without an Activity on Android.

This patch modifies the ContentBrowserClient::OpenURL method to pass a
callback, to be invoked when the content::WebContents* is available,
rather than returning it immediately as this will be an asynchronous
process on Android.

For actually opening a new tab, we create a ServiceTabCreator class which
has the ability to create tabs from Services. This method will fire
an intent to start the activity asynchronously.

The follow-up patch will make the activity communicate back a reference
to the created TabAndroid / WebContents, which allows the Service to
get it, and finalize the callback as expected.

BUG=454809

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

Cr-Commit-Position: refs/heads/master@{#315855}
14 files changed