Introduce blink::ServiceProvider

This CL is a warmup for making hyperlinks actually work. ServiceProvider lets
the embedder inject a bundle of services that are specific to the embedding
context (e.g., NavigatorHost). Services that are independent to the embedding
context can be injected via blink::Platform.

R=eseidel@chromium.org

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