headless: Allow protocol handler customization

Allow headless clients to provide custom protocol handlers. This lets
the clients override how URL requests are fulfilled for different
schemes types.

Design doc: https://docs.google.com/document/d/1m4CCZGJWOJdHY5MVwQqY3sT-5kBoz7NqmGvIb6-l3fM/edit#bookmark=id.5bqp8w95liri

BUG=595353

Review-Url: https://codereview.chromium.org/2024973002
Cr-Commit-Position: refs/heads/master@{#396884}
6 files changed