Properly stop replay when there is no more data

* We need to call player methods from the main thread, not the BSoundPlayer.
* Delete things in the right order (BMediaFile before the cache) so it
doesn't lockup.

Makes it possible to play *several* youtube videos.

Also early work on seeking, but that doesn't work yet. Added some TODOs
with ideas on how to implement things better.