Reworked the way that Data works. …
Now DataSource is DataStore, with the idea being that anything which
produces data will stick it into a DataStore, but the DataStore looks
the same whatever the data is.

It provides a current set of data (which is assumed to not be
processed), and optional loading of all historic data if necessary

Scripts now decide whether they can run on the current set of data, in
which case it is cleared and added to the historic data