Rewrite the queue management a bit so that blocks are not completed until they have finished playing. This also makes the queue system mandatory for all backends.