Fix WebrtcVideoStream to handle failed capture requests.

DesktopCapturer implementations are allowed to fail Capture() requests.
In that case the caller it supposed to retry later. WebrtcVideoStream
wasn't handling this case properly. On Windows the first Capture()
request often fails because it requires desktop process initialization.
WebrtcFrameScheduler, WebrtcVideoEncoder and their implementations were
also updated to accept nullptr frames, to make it possible to top-off
previous frame, while the capturer keeps failing.

Also updated DesktopSessionProxy to return ERROR_TEMPORARY instead of
ERROR_PERMANENT when the desktop process is not connected.

BUG=678712

Review-Url: https://codereview.chromium.org/2616213002
Cr-Commit-Position: refs/heads/master@{#442391}
10 files changed