Initialize mConverter.

Not sure if it's safe to dispose a null AudioConverterRef.
Use the callback's error method to report errors.

Instead of passing error state through mFailed, just
call mCallback->Error() directly to stop the decoder
when we get an error inside one of the async decoder
functions.
Implement drain and flush.
Close mStream on shutdown.

Also initialize it for hygiene.
Remove obsolete stub code.
Fix typo.
Verify clean shutdown in the dtor.