[Clank] Handle MediaDrm provision failure safely in offline.

In offline, MediaDrm provision will fail because browser can't send
provision request. This will return a null MediaCrypto object to VDA.
This patch:

1. Return empty String from Java, instead of null when calling
2. Make OnMediaCryptoCB always return a valid std::unique_ptr<JavaRef>
of MediaCrypto. Client is expected to check if JavaRef contains a null
object instead of checking if std::unique_ptr contains a null JavaRef.
3. AVDA::SetOverlayInfo early returns if in ERROR state.

TEST=repro step in the bug

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ie264e5a1d803fd4d2afbbdabcac7d1b600e26f85
Reviewed-on: https://chromium-review.googlesource.com/669776
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Commit-Queue: Yuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502947}
11 files changed