Fix audio stop from audio instead of core

This fix is based on #494 (and therefore #491). It provide the availability to let the audio backend notify the core that a great error occurred, and that it needs to stop playback.

atm, the audio backend stops by himself (which shouldn't be permitted), with this fix, I provide the playback the power to decide what to do, and also let the backend decide what to do.

By default, it stops on error too. If backend answers with something that evaluates to true in on_playback_error() it will mark the track as unplayable and go to next song (as it does when backend.playback.play() fails).