Makes sure video decoder software fallback handles InitDecode()
failures, and properly releases the pointer after ::Release() so that
another decode failure will properly reinitialize the decoder.
Also makes sure to not call Decode() without a previous InitDecode()
succeeding.
BUG=webrtc:7154
R=noahric@chromium.org, sophiechang@chromium.org
Review-Url: https://codereview.webrtc.org/2690183004 .
Cr-Commit-Position: refs/heads/master@{#16594}