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}