reads a stream and produces QDataSets representing the data found on the stream. The stream is read in, and then getDataSet or getDataSet(name) is called to retrieve datasets.
since an appended series of rank 1 datasets will return as a rank 2 join, this utility provides a standard place to flatten it. This will also flatten DEPENDNAME_0.
return a list of available datasets
return a list of available datasets and their label (or name if not available).
If the dataset is a join of appendable datasets, then we can append them to reduce the rank by 1 and make one long time series. These datasets should be equivalent, however most of the system doesn't implement this (and probably never will). So this is a bit of a kludge, where I don't want to flatten a dataset automatically, but we probably want to.