Start readstage threads by getting a frame from the datasource first, rather
than starting with a null item, and getting a frame in run. This is slightly
more awkward at startup, but is more consistent with how other single thread
stages work, and we don't end up queueing unnecessary threads (since we only
start a thread if we have a frame). We still do reads in the first stage,
but they are for the next frame, not the one we are currently working on.
Reset SequencingBuffers as part of resetting the processing stages after a
stream::project ends. This is of course necessary since sequencing buffers wait
to get specific frames before reporting new frames as available.
Use stage numbers directly as priorities for new jobs since qt 5.1 fixed the
bug where priorities were backwards
Surface the active frame count as a parameter of stream, and lower the default
from 500 to 100, though that may still be unnecessarily high for alot of cases.
Add some debug methods, improve some comments.