[Presentation API] (4th)(1-UA blink side) Add WebPresentationConnection and WebPresentationConnectionProxy API for 1-UA messaging

(Splitting of https://codereview.chromium.org/2379703002/)

PresentationConnection in controlling frame should be able to send/receive message to/from PresentationConnection in receiver frame. We do it via PresentationConnectionProxy.

Relation between WebPresentationConnection, WebPresentationConnectionProxy, and WebPresentationConnectionClient:

PresentationConnection implements WebPresentationConnection; PresentationConnectionProxy implements WebPresentationConnectionProxy and blink::mojom::PresentationConnection. Sending message from PresentationConnectionA to PresentationConnectionB

PresentationConnectionA.sendString()
  --> PresentationConnectionProxyA.sendString()
      --> (mojo call) PresentationConnectionProxyB.onMessage()
          --> PresentationConnectionB.didReceiveTextMessage()

WebPresentationConnectionClient is not related to message sending, it stores id, url, and local proxy and is used by PresentationDispatcher class to create PresentationConnection.

More details in code comments and design doc (use chromium.org account): https://docs.google.com/document/d/1XM3jhMJTQyhEC5PDAAJFNIaKh6UUEihqZDz_ztEe4Co/edit#heading=h.hadpx5oi0gml

BUG=525660

Review-Url: https://codereview.chromium.org/2471263003
Cr-Commit-Position: refs/heads/master@{#446614}
31 files changed