cubeb-core: Stop cubeb_stream before destroying it in Drop.
cubeb-core: Stop cubeb_stream before destroying it in Drop.

A running cubeb_stream *must* be stopped before calling
cubeb_stream_destroy, otherwise it's possible for the stream callbacks to
run during and after cubeb_stream_destroy, restuling in a UAF.

It's not clear that calling cubeb_stream_stop multiple times is permitted by
the current API (although it's currently safe to do in the tier 1 backends I
checked), but I think it's cleaner to change the API than to carry an
additional piece of state in the caller to track whether the stream was ever
started.

djg/cubeb-rs