Warning and tests around tricky cases in source protocol

Warn in source.ml when #get is called without #is_ready being true,
in which case we have to "silently" end a track without calling #get_frame.
Hopefully the warning will help catching cases where this shouldn't happen,
i.e. a source has a faulty implementation of #is_ready.

Add two tests to check that sequence() cleans up its children whenever possible
despite the above mentioned silent ending of tracks. These tests pass thanks to
eb42975 but not without it.

Add source.is_up() for those tests.